변수에 대한 이해 |
컴퓨터에 저장공간이 있다는건 모두 아시죠?
저장공간은 크게
메모리와 하드디스크 두가지로 나눌 수 있습니다.
|
|
하드디스크는 용량이 크고 CPU에 전달하는 속도가 느립니다.
메모리는 용량이 적고 CPU에 전달하는 속도가 빠르죠
따라서 하드에서 직접 CPU로 자료를 옮겨서 처리하려면 상당한 시간이 걸리기 때문에 하드의 데이터들을 메모리에 미리 옮겨놓고 CPU로 빠르게 전달하는 것이죠
변수는 제한된 메모리공간을 최대한 효율적으로 활용하여 CPU에게 값을 전달하는 목적으로 사용됩니다.
예를들어 컴퓨터는 [1+2 = ?]와 같은 계산을 어떻게 처리할가요?
1. 컴퓨터에 1의 값을 입력할 수 있는 변수 공간을 제작(할당)한다.
2. 컴퓨터에 2의 값을 입력할 수 있는 변수 공간을 제작(할당)한다.
3. 컴퓨터에 결과 값을 입력할 수 있는 변수 공간을 제작(할당)한다.
4. 변수값에 계산할 값을 집어넣는다.
5. 컴퓨터에게 계산하도록 명령한다.
6. 컴퓨터가 계산한값을 화면에 출력한다.
참 복잡하죠?
우리는 그냥 '1+2=3'이라고 간단하게 도출하는 결과를 컴퓨터는 위의 과정을 거쳐서 계산합니다.
프로그램에 입문하였으면 사용자의 시각보다 컴퓨터가 계산하는 방식으로 생각할 필요가 있습니다.
1~3 : 우선 값을 저장할 변수를 만들어 봅시다.
Int a; //변수 1의 값을 저장할 a
Int b; //변수 2의 값을 저장할 b
Int c; //계산할 결과값을 저장할 c
4 : 이제 만들어 둔 변수에 값을 넣어(대입)봅시다.
Int a=1; //변수 1의 값을 저장할 a
Int b=2; //변수 2의 값을 저장할 b
Int c=1; //계산할 결과값을 저장할 c
5 : 이제 변수를가지고 계산해보죠
c=a+b;
6 : 컴퓨터가 계산한값을 화면에 출력시켜봅시다.
Console.WriteLine("1+2= 입니다",c);
위를 모아서 코딩을하면 아래와 같습니다.
- using System;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- int a;
- int b;
- int c;
- a = 1;
- b = 2;
- c = a + b;
- Console.WriteLine("1+2= 입니다", c);
- }
- }
- }
변수의 구조 |
변수를 어떻게 사용해야되는지 알았으니 이제 변수를 파해쳐봅시다.
※ 참고로 앞에서 배운
int a; (선언후) a=0; (대입)하는 내용도 맞고
int a=0; 으로 한줄로 끝내는 방식도 맞습니다.
변수는 위 그림을 보시면
데이터형식, 식별자, 리터럴, 세미콜론으로 이루어져 있습니다.
ㆍ데이터형 : 메모리에 저장할 공간의 크기, 형식을 표시합니다.
ㆍ식별자 : 사람의 이름을 '홍길동'으로 정하듯 식별자=이름 이라고 생각하시면
됩니다.
ㆍ리터럴 : 변수에 들어가는 값 입니다. 리터럴은 데이터형에 따라서 달라잡니다.
식별자의 명명규칙 |
식별자는 메소드, 클래스, 네임스페이스, 등에 직접 붙인 식별 가능한 이름이다.
■ 식별자의 규칙
ㆍ식별자의 첫 글자는 영문자, 밑줄(_)만을 사용한다.
ㆍ숫자는 식별자에 포함될 수 있다. 그러나 첫 글자로는 사용하지 못한다.
ㆍ키워드는 식별자로 사용할 수 없다.
ㆍ대소문자를 구분해서 사용한다.
■ 식별자의 권장사항
ㆍ모두 대문자로 쓰는 것은 피한다.
ㆍ밑줄(_)을 되도록 첫 글자에 사용하지 않는다.
ㆍ약어는 되도록 쓰지 않는다.
ㆍ특수문자의 사용은 피한다.
아래의 표는 미리 정해져 있는 키워드입니다. 식별자에 사용하면 안됩니다.~!
abstract |
as |
base |
bool |
break |
byte |
case |
cath |
char |
checked |
class |
const |
continue |
decimal |
default |
delegate |
do |
double |
else |
enum |
event |
explicit |
exterm |
false |
finally |
fixed |
float |
for |
foreach |
goto |
if |
implicit |
in |
int |
interface |
internal |
is |
lock |
long |
namespace |
new |
null |
object |
operator |
out |
override |
params |
private |
protected |
public |
readonly |
ref |
return |
sbyte |
sealed |
short |
sizeof |
stackalloc |
static |
string |
struct |
switch |
this |
throw |
true |
try |
typeof |
uint |
ulong |
unchecked |
unsafe |
ushort |
using |
virtual |
void |
volatile |
while |
|
|
|