C 변수와 상수
데이터를 처리하기 위해서는 데이터가 어떤 값인지를 저장해놓고 불러와 사용하는 과정이 필수적이다.
그리고 컴퓨터는 데이터를 저장하기 위해 기억장치인 메모리를 활용한다.
메모리에 데이터를 담아 기억을 해두고, 메모리의 각 장소마다 존재하는 주소값을 통해 기억해둔 데이터를 찾는다.
그리고 이 주소값을 대신할 식별자를 지정하고 식별자를 통해 데이터에 접근하는데 그 식별자가 변수이다.
즉, 변수란 데이터를 저장해둔 메모리 주소를 쉽게 식별하기 위해 붙인 이름이다.
변수
예를 들어 7이라는 32비트 정수는 다음과 같이 메모리주소 0x1000부터 0x1003까지 4바이트의 저장 공간에 저장된다.
그런데 이 주소값을 기억하는 것보다는 식별자를 통해 접근하는 것이 좋을 것이고, 그 식별자의 이름이 변수이다.
int a = 7;과 같이 정의를 하면 7은0x1000~0x1003에 저장되고, a는 그 주소값을 대신하는 식별자인 것이다.
변수의 자료형
정수형 | char | 1바이트 | -128 ~ 127 (-2^7 ~ 2^7-1) |
short | 2바이트 | -32,768 ~ 32,767 (-2^15 ~ 2^15-1) | |
int | 4바이트 | -2,147,483,648~ 2,147,483,647 (-2^31 ~ 2^31-1) | |
long | 4바이트 | -2,147,483,648~ 2,147,483,647 (-2^31 ~ 2^31-1) | |
long long | 8바이트 | -9223372036854775808 ~ 9223372036854775807 (-2^63 ~ 2^63-1) | |
실수형 | float | 4바이트 | -3.4 * 10^38 ~ 3.4 * 10^38 |
double | 8바이트 | -1.8 * 10^308 ~ 1.8 * 10^308 |
대표적인 변수의 자료형과 그 범위는 위와 같다.
그리고 변수를 선언할때는 [자료형] [변수명] = [값]; 과 같이 선언하면 된다. (ex: int a = 10;)
변수의 규칙
변수에는 다음과 같은 규칙들이 있어 이 규칙에 맞게 사용해야 한다.
- 모든 변수는 사용되기 전에 선언되어야 한다.
- 영문자 또는 언더바(_)로 시작되어야 하며 숫자로 시작할 수 없다.
- 중간에 영문자, 언더바(_), 숫자를 사용할 수 있다.
- 예약어(void, return, int 등...)는 사용할 수 없다.
- 대소문자를 구별하여야 한다.
상수
상수는 변수와 마찬가지로 값이 저장된 메모리주소의 식별자이지만 그 값을 변경할 수 없다.
상수를 선언할 때는 const [자료형] [변수명] = [값] 과 같이 선언하면 되며 보통 변수명은 대문자만을 사용한다.
const 이외에도 #define 전처리기를 사용할 수도 있다. (#define A 10)
cosnt int A = 10; 과 같이 선언을 해주었다면, 이후에 A = 11;과 같이 값을 변경하려고 하면 오류가 발생한다.