꾸꾸리

3-1. 변수와 연산자 (변수) 본문

Programming Language/C

3-1. 변수와 연산자 (변수)

O773H 2018. 7. 13. 15:26
728x90

1-0. 변수란 무엇인가?


수학에서는 정해지지 않은, 그래서 임의의 값을 대입할 수 있는 문자를 가리켜 변수라 한다.

C언어의 변수가 의미하는 바도 이와 비슷한다.

"값을 저장할 수 있는 메모리 공간에 붙은 이름, 혹은 메모리 공간 자체를 가리켜 변수라 한다."

따라서 변수라는 것을 하나 만들면(선언하면), 그 변수의 이름을 통해서 값의 저장 및 참조가 가능하고, 저장된 값의 변경도 가능하다.


1-1. 변수의 선언


1
2
3
4
int main(void)
{
    int num;    // num이라는 이름의 변수선언
}
cs


위의 코드에서 볼수 있듯이 다음 문장이 변수의 선언문이다.


int num;


이 문장을 구성하는 int와 num이 의미하는 바는 다음과 같다.


 int           정수의 저장이 가능한 메모리 공간을 할당합니다.

 num        그 메모리 공간의 이름을 num이라 합니다.


변수 num을 선언한 다음에는 num이라는 이름을 이용해서 값을 저장하고 참조할 수 있다.


1
2
3
4
5
6
int main(void)
{
    int num;            // num이라는 이름의 변수선언
    num = 20;            // 변수 num에 20 저장
    printf("%d", num);    // 변수 num의 값 참조
}
cs


C언어에서 = 기호는 값의 대입을 뜻한다. 이 기호를 '대입 연산자'라 하며, 대입 연산자의 오른편에 오는 값을 왼편에 오는 변수에 저장하는 형태로 사용된다. 따라서 위 코드에서 4행이 변수 num에 20이라는 값을 저장한다는 것을 알 수 있다.


1-2. 변수의 다양한 선언 및 초기화 방법

선언된 변수에 처음 값을 저장한느 것을 가리켜 '초기화'라 한다. 그리고 초기화 이후에 저장된 값을 변경할 때에는 그냥 '대입' 또는 '대입연산'을 진행한다고 한다.


1
2
3
4
5
6
int main(void)
{
    int num;        // num이라는 변수의 선언
    num = 12;        // 변수 num을 12로 초기화
    num = 24;        // 변수 num에 24를 대입
}
cs


그런데 C언어세너는 다음과 같이 변수를 '선언과 동시에 초기화'하는 것이 가능하다.


int num = 12;


위의 문장을 실행하게 되면, 변수 num이 메모리 공간에 할당되자마자 12로 초기화한다.


또, 아래와 같이 둘 이상의 변수를 동시에 선언하는 것도 가능하고, 선언 및 초기화하는것도 가능하다.

1
2
3
4
5
int main(void)
{
    int num1, num2;                // 두 개의 변수를 선언
    int num3 = 30, num4 = 40;     // 두 개의 변수를 선언 및 초기화
}
cs


[참고] 변수를 선언만 하고 초기화하지 않으면 쓰레기 값(아무런 의미가 없는 값)이 저장된다.

   (오류가 뜰 수도 있습니다.)


일반적으로 정수형 변수는 선언과 동시에 0으로 초기화한 다음, 이후에 의미있는 값을 저장하기도 한다.


int num=0;


하지만 이는 절대적으로 지켜야할 규칙은 아닙니다!


1-3. 변수선언 시 주의할 사항


변수의 이름을 지을 때에는 지켜야할 규칙이 몇가지 있다.


*  변수의 이름은 알파벳, 숫자, 언더바(_)로 구성된다.

*  C언어는 대소문자를 구분한다. 따라서 변수 Num과 변수 num은 서로 다른 변수이다.

*  변수의 이름은 숫자로 시작할 수 없고, 키워드도 변수의 이름으로 사용할 수 없다.

   (키워드에 대해서는 조만간 설명하겠습니다.)

*  이름 사이에 공백이 삽입될 수 없다.


따라서 아래의 변수 선언문은 모두 유효하지 않다.


1
2
3
    int 8th;        // 변수의 이름이 숫자로 시작했으므로
    int happy@;        // 변수의 이름에 @와 같은 특수문자는 올 수 없다
    int my house;    // 변수의 이름에는 공백이 올 수 없다.
cs


변수의 이름과 관련된 내용이 다소 복잡하게 느껴진다면 가볍게 한번 읽고 넘어가기 바란다.

"변수의 이름을 정할 때에는 변수의 역할에 어울리는, 의미 있는 이름을 지어야 한다."는 것만 알아두자!!


1-4. 변수의 자료형(Data Type)


변수는 크게 두 가지로 부류로 나뉜다.


* 정수형 변수    정수의 저장을 목적으로 선언된 변수

* 실수형 변수    소수점 이하의 값을 지니는 실수의 저장을 목적으로 선언된 변수


변수의 종류가 크게 두 가지로 나뉘는 이유는 정수냐, 실수냐에 따라 값이 메모리 공간에 저장 및 참조되는 방식이 다르기 때문이다(이후에 설명하겠습니다). 정수형 변수는 변수의 크기에 따라 char형, short형, int형, long형 변수로 나뉘고, 실수형 변수도 크기에 따라 float형 변수, double형 변수로 나뉘는데, 이는 다음에 더 자세히 살펴보겠다. 일단은 다양한 형태의 변수가 존재한다는 것만 기억하자.


int num1=24;                 // num1을 가리켜 int형 변수라 한다.

double num2 = 3.14;       // num2를 가리켜 double형 변수라 한다.







728x90

'Programming Language > C' 카테고리의 다른 글

3-3. scanf와 C언어의 키워드  (0) 2018.07.18
3-2. 변수와 연산자 (연산자)  (0) 2018.07.13
2-2. 주석 및 printf 함수의 이해  (0) 2018.07.13
2-1. hello world!  (0) 2018.07.11
1. C언어는 무엇일까?  (0) 2018.07.11