
1. 연산을 위한 연산자
#include <stdio.h>
int main(void)
{
3+4;
return 0;
}
C언어를 이용해서 특정연산을 요구할 때 사용하는 약속된 기호를 가리켜 '연산자'라 한다.
컴파일이 되고 실행을 해보았지만, 덧셈의 결과가 어디에도 출력되지 않음을 알 수 있다.
하지만 이는 당연한 것이다.
프로그램 내에 덧셈을 요구하는 문장은 있지만, 출력을 요구하는 문장은 존재하지 않기 때문이다.
그래서 다음의 형태로 프로그램을 변경하고자 한다.
"덧셈연산을 하고 그 결과를 메모리 공간에 저장한다. 그리고 메모리 공간에 저장된 값을 출력한다."
위에서 언급한 것처럼 덧셈결과를 저장하게 되면 printf 함수의 호출을 통해서 다양한 형태로 출력하는 것이 가능해질 뿐만 아니라, 저장된 값을 가지고 추가적인 연산도 진행할 수가 있다.
그렇다면 덧셈결과는 어떻게 저장해야 할까?
혹시 그 방법이 어렵지는 않을까? 어렵지 않다!
C언어는 이를 목적으로 '변수(variable)'라는 것을 제공하고 있으니 말이다.
2. 값의 저장을 위한 변수
int num;
수학에서는 정해지지 않은, 그래서 임의의 값을 대입할 수 있는 문자를 가리켜 '변수'라 한다.
이와 유사하게 C언어의 변수가 의미하는 바도 다음과 같다.
"값을 저장할 수 있는 메모리 공간에 붙은 이름, 혹은 메모리 공간 자체를 가리켜 변수라 한다."
따라서 변수라는 것을 하나 만들면(선언하면), 그 변수의 이름을 통해서 값의 저장 및 참조가 가능하고, 또 저장된 값의 변경도 가능하다.
- int: 정수의 저장이 가능한 메모리 공간을 할당한다.
- num: 그리고 그 메모리 공간의 이름을 num이라 한다.
3. 변수를 이용한 데이터의 저장
변수 num을 선언한 다음에는 num이라는 이름을 이용해서 값을 저장하고 참조할 수 있다.
int main(void)
{
int num;
num=20;
prnitf("%d", num);
return 0;
}
C언어에서 = 기호는 값의 대입을 뜻한다.
이 기호를 가리켜 '대입 연산자'라 하며, 대입 연산자의 오른편에 오는 값을 왼편에 오는 변수에 저장하는 형태로 사용이 된다.
4. 변수의 다양한 선언 및 초기화 방법
int num;
num=12; //변수 num을 12로 초기화
num=24; //변수 num에 24를 대입
선언된 변수에 처음 값을 저장하는 것을 가리켜 '초기화'라 한다.
그리고 초기화 이후에 저장된 값을 변경할 때에는 그냥 '대입'또는 '대입연산'을 진행한다고 한다.
그런데 C언어에서는 변수를 '선언과 동시에 초기화'하는 것이 가능하다.
int num=10;
위의 문장을 실행하게 되면, 변수 num이 메모리 공간에 할당되자마자 10으로 초기화된다.
그리고 다음과 같이 둘 이상의 변수를 동시에 선언하는 것도 가능하고, 동시에 선언 및 초기화하는 것도 가능하다.
int num1, num2;
int num3=30, num4=40;
초기화 하지 않은 변수는 '쓰레기 값'이 저장된다.
쓰레기값이란 '아무런 의미가 없는 값'을 뜻한다.
그리고 가급적 이러한 쓰레기 값이 변수에 저장되지 않도록 하는 것이 좋다.
따라서 변수를 선언과 동시에 0으로 초기화 한 다음, 이후에 의미 있는 값을 저장하기도 한다.
5. 변수선언 시 주의사항
1. 변수의 이름은 알파벳, 숫자, 언더바(_)로 구성된다.
2. C언어는 대소문자를 구분한다.
3. 변수의 이름은 숫자로 시작할 수 없고, 키워드도 변수의 이름으로 사용할 수 없다.
4. 이름 사이에 공백이 삽입될 수 없다.
6. 변수의 자료형
지금까지 변수의 선언과 활용에 대해 설명하였는데, 이러한 변수는 정수형 변수, 실수형 변수로 나뉜다.
변수의 종류가 크게 두 가지로 나뉘는 이유는 정수냐, 실수냐에 따라서 값이 메모리 공간에 저장 및 참조되는 방식이 다르기 때문이다.
그리고 정수형 변수는 변수의 크기에 따라서 char, short, int, long형 변수로 나뉘고, 실수형 변수도 크기에 따라서 float, double형 변수로 나뉘는데, 일단 이렇게 다양한 변수가 존재한다는 것만 기억하면 된다.
7. C언어의 다양한 연산자

8. 키보드로부터 데이터 입력을 위한 scanf 함수
scanf 함수를 이용하면 키보드로부터 다양한 형태의 데이터를 입력받을 수 있다.
int num;
scanf("%d", &num);
키보드로부터 데이터를 입력 받으려면, 데이터의 종류에 맞게 메모리 공간을 미리 할당해야 한다.
따라서 위의 코드에서는 scanf 함수호출에 앞서 변수 num을 선언하고 있다.
이어서 scanf 함수를 호출하면서, 두 번째 인자로 num을 넘겨주고 있다.
그럼 이 문장이 의미하는 바를 정리해 보겠다.
"10진수 정수형태로 입력 받아서 변수 num에 저장하라."
printf 함수를 이용해서 출력형태를 다양하게 지정하는 것이 가능하였다.
마찬가지로 scanf 함수를 이용하면 입력형태를 다양하게 지정하는 것이 가능하다.
int main(void)
{
int num1, num2, num3;
scanf("%d %d %d", &num1, &num2, &num3);
...
}
위 코드에서와 같이 scanf 함수의 호출문장에서, 서식문자의 수를 조절하여 입력 받는 '데이터의 수'를 조절할 수 있을 뿐만 아니라, 서식문자를 변경하여 입력 받는 '데이터의 유형(형태)'도 달리할 수 있다.
9. C언어의 표준 키워드

위의 키워드들은 변수나 함수의 이름으로 사용할 수 없다.
즉, 프로그래머가 다른 용도로 사용할 수 없도록 제한되어 있다.