C에서 변수가 의미하는 것은 값을 저장할 수 있는 메모리 공간에 붙은 이름, 혹은 메모리 공간 자체를 가리키는 것이다.
그래서 변수를 하나 선언하면 변수의 이름을 통해 값의 저장과 참조가 가능하다.
int main(void){
int num; // num이라는 이름의 변수 선언
num = 20; // 변수 num에 20저장
printf("%d", num) // 변수 num의 값 참조
}
위 코드에서 int는 정수 저장이 가능한 메모리를 할당한다는 의미이고, num은 그 메모리 공간의 이름을 num이라고 하겠다는 것이다. C에서 = 기호는 대입 연산자로 값의 대입을 의미한다. 대입연산자가 사용되면 연산자 오른쪽의 값을 왼쪽의 변수에 대입한다. printf()함수에서는 num에 저장된 값 20이 출력된다. 선언된 변수에 처음 값을 대입하는 것을 초기화 라고 한다. 초기화 후 저장된 값은 변경 가능하다.
C에서는 다음과 같이 변수를 선언과 동시에 초기화 하는것, 둘 이상의 변수를 동시에 선언하는 것, 둘 이상의 변수를 동시에 선언 및 초기화 하는 것도 가능하다.
int num1 = 12; // 선언과 동시에 초기화
int num2, num3; // 두개의 변수 선언
int num4 = 5, num5 = 20; // 두개의 변수를 선언 및 초기화
#include <stdio.h>
int main(void){
int num1, num2;
int num3=30, num4=40;
printf("num1: %d, num2: %d \n", num1, num2);
num1 = 10;
num2 = 20;
printf("num1: %d, num2: %d \n", num1, num2);
printf("num3: %d, num4: %d \n", num3, num4);
return 0;
}
/*
output:
num1: 0, num2: 4200864
num1: 10, num2: 20
num3: 30, num4: 40
*/
첫 번째 출력값을 보면 변수를 선언만하고 초기화를 하지 않았을 경우 쓰레기값이 저장될 수 도 있다. 따라서 변수를 선언과 동시에 0으로 초기화 한 후 나중에 필요한 값을 저장하는 방법을 많이 사용하기도 한다.
변수 선언 규칙
1. 변수의 이름에는 알파벳, 숫자, 언더바(_)만 사용할 수 있다.(언더바를 제외한 다른 특수문자는 사용할 수 없다.)
2. C는 대소문자를 구분한다. (변수 num 과 변수 NUM은 다른 변수 이다.)
3. 변수의 이름은 숫자로 시작할 수 없다.
4. 키워드는 변수로 사용할 수 없다(키워드 예 : printf, return 등)
5. 변수 이름 사이에는 공백이 사용될 수 없다.
'Language > C, C++' 카테고리의 다른 글
[C] scanf() (0) | 2020.11.21 |
---|---|
[C] 연산자 (0) | 2020.11.19 |
[C] printf() (0) | 2020.11.18 |
[C] 주석 (0) | 2020.11.17 |
[C]Hello World.c (0) | 2020.11.17 |