변수 : 값을 저장할 수 있는 메모리 공간에 붙은 이름 또는 메모리 공간 자체
수학에서의 방정식(2x + 4 = y)이 있다고 하자. 여기서 임의의 값을 대입할 수 있는 문자를 변수라고 한다.
C언어에서의 변수도 이와 같은 역할을 한다. 따라서 변수를 선언하면, 그 변수명을 통해 값의 저장 및 참조, 저장된 값의 변경이 가능하다.
int main(){
int num; // num이라는 이름의 변수를 선언
. . . .
}
여기서 num은 변수의 이름이고, int는 num이라는 변수의 저장타입이다.
int main(){
int num;
num = 10;
printf("%d", num); // 출력: 10
return 0;
}
위의 코드에선 num변수를 선언한 후 10이라는 값을 저장한다. 따라서 출력을 하게 되면 10이 출력되는 것을 확인할 수 있다.
선언된 변수에 처음 값을 지정하면 변수를 "초기화"했다 한다. 초기화 이후 값을 변경하고 싶다면 변수에 새로운 값을 저장하면 된다.
int main(){
int num = 10;
num = 20;
printf("%d", num); // 출력: 20
}
변수를 선언하고 초기화를 하지 않으면 쓰레기 값(아무 의미가 없는 값)이 저장된다.
따라서 변수를 선언할 때는 0으로 초기화를 한 다음에 의미있는 값을 저장하는 것이 좋다.
연산자
방정식(2x + 4 = y)에서 x와 y가 변수였다면 연산자는 +, =과 같은 역할을 한다.
int main(){
int a = 2;
int b = 2;
int c = 1;
int d = 3;
printf("%d", a * 2); // 출력: 4
b *= 2;
printf("%d", b); // 출력: 4
printf("%d", c++); // 출력 :2;
printf("%d", d--); // 출력: 2;
}
증감 연산자를 보면 ++, --가 변수명의 앞과 뒤에 붙는 것을 볼 수 있을 것이다.
연산자가 앞에 붙는다면 속한 문장을 먼저 진행한 후, 값을 증감하는 것이고, 뒤에 붙는다면 값을 우선 증가시킨 후 속한 문장을 진행하는 것이다.
int main(){
int n1 = 10;
int n2 = 10;
printf("num1: %d"\n, num1);
printf("num1++: %d"\n, num1++);
printf("num1: %d"\n\n, num1);
printf("num2: %d"\n, num2);
printf("num2++: %d"\n, num2++);
printf("num2: %d"\n, num2);
return 0;
}
/* 출력
num1: 10
num1++: 10
num1: 11
num2: 10
num2: 11
num2: 11
*/
연산자에서 주의할 점은 바로 "결합방향"이 있다는 것이다.
수학에서 사칙연산이 있을 때 더하기, 곱하기가 있다면 곱하기가 우선이고, 곱하기, 나누기가 있다면 앞에서부터 계산해나간다. C언어에서도 이러한 규칙이 있다.
이미 봤던 연산자도 있고 보지 못했던 연산자들도 있을 것이다. 공부를 하며 다양한 연산자를 알게 될 것이고 이의 우선 순위, 결합 방향을 알아두면 차후 프로그래밍을 하는데 도움이 될 것이다.
'Programming > C' 카테고리의 다른 글
C언어 - 흐름의 분기(if, else, continue, break, switch) (0) | 2021.09.17 |
---|---|
C언어 - 반복문(while문, do~while문, for문) (0) | 2021.09.15 |
C언어 - 상수, 자료형 (0) | 2021.09.14 |
C언어 - 헤더파일, printf, scanf (0) | 2021.09.12 |
C언어 - 기본 단위인 함수(Function)의 이해, 기초 (0) | 2021.09.12 |
댓글