C

C언어를 가르칩니다.

C C언어를 가르칩니다.

변수 선언(assignment), 초기화(initializing)

변수를 선언하고 초기화하는 법과 그 과정을 알아봅니다.

변수

변수(Variable)는 데이터를 담는 그릇입니다. 안에 담는 데이터가 언제든지 변할 수 있어서 변수라 합니다. 반대말은 상수(Constant)입니다. 상수는 항상 똑같습니다.

선언과 초기화

모든 변수는 사용하기 전에 선언해야 합니다. 내가 이 변수를 쓸 테니 준비해달라! 라는 것이죠. 선언 위치는 어디든지 상관없고, 변수를 사용하기 전이기만 하면 됩니다. 예전의 C에서는 변수를 무조건 함수 첫머리에 선언해야 했지만, 이제는 그렇지 않습니다.

초기화는 그 변수의 처음 값을 지정하는 것을 말합니다. 선언을 하고 초기화를 할 수도 있고, 선언과 초기화를 같이 할 수도 있습니다.

#include <stdio.h>
int main(void)
{
    int a; //int형 변수 a를 선언합니다.
    a=9; //a를 9로 초기화합니다.
    char b, c, d; //char형 변수 b, c, d를 동시에 선언합니다.
    int max_age=100; //선언과 동시에 초기화를 합니다.
    int bicycle=2, car=4; //여러 변수를 선언하고 동시에 초기화합니다.
​    int a_age, b_age, c_age;

    a_age=b_age=c_age=17; //한꺼번에 초기화를 합니다.
​    printf("우리는 모두 %d살 동갑입니다.",a_age);
​    
​    return 0;
}

이렇게는 초기화할 수 없습니다.

int a=b=c=3; //오류

이렇게 할 수는 있지만, 권하지 않습니다. 하나는 선언만 하고, 하나는 선언과 초기화를 같이 합니다. 뭐가 뭔지 구분이 쉽게 되지 않습니다. 협업을 할 때 이런 코드를 짜지 맙시다.

int a, b=3; //권하지 않음
변수에게 이름을 지어줄 때는 이름만 보고도 그 변수가 뭐하는 놈인지 알 수 있도록 짓는 게 좋습니다. 변수 이름이 좀 길어져도 상관없습니다. 거의 모든 에디터에 자동완성 기능이 있으니까요.

선언과 초기화 과정

변수를 선언하고 초기화할 때 메모리에서 어떤 일이 일어나는지 알아봅시다.

선언

아래는 여러분의 메모리(램)카드입니다. 편의상 한 칸을 1바이트로 둡시다. 그러니까 여러분 메모리는 8Byte 짜리 메모리입니다.

int a;

int형 변수 a를 선언하면, 컴파일러는 메모리에 a를 위한 공간을 확보합니다. 얼마나 확보할까요? a의 데이터형에 따라 달라집니다. a는 int형이고, int형은 일반적으로 4바이트를 차지합니다. 그러므로 여러분의 메모리에는 4바이트 짜리 a를 위한 공간이 할당됩니다.

(칸의 구분선은 편의를 위해 없앴습니다)

그럼 이제 저 공간에 무슨 일이 일어날까요? 아직은 아무것도 일어나지 않습니다.

 

a=65535;

이 소스코드를 치면 드디어 이 공간에 무슨 일이 일어납니다.

즉, 어떤 변수를 초기화하면, 해당 변수를 위한 공간에 그 값이 대입됩니다. 이진수로 대입되지만 이진수를 전혀 모르시더라도 이해하는 데는 별 문제가 없을 겁니다.

 

 

.

댓글

댓글 본문
작성자
비밀번호
버전 관리
truelight
현재 버전
선택 버전
graphittie 자세히 보기