수나 문자와 같은 값(상수)을 저장하는, 언제든지 다른값을 저장할 수 있는 이름을 변수(variable)
- 변수를 선언만 하고 초기화 하지 않으면 쓰레기값(아무 의미 없는 값)이 저장됨
- visual studio는 초기화 되지 않은 변수를 감지해고 오류를 출력함
- 정적 변수(함수 밖에 선언된 변수)로 선언된 것은 기본적으로 초기화됨
#include <stdio.h>
#pragma warning(disable:4996)
int main()
{
int num; // 변수 선언
num = 0; // 변수 초기화(처음으로 값 대입)
num = 10; // 값 대입
int test = 0; // 변수의 선언 및 초기화
}
데이터를 직접 표현하거나 저장할 수 있고 수나 문자와 같은 값 자체를 상수(constant)
- 변경이 불가능한 값
#include <stdio.h>
#pragma warning(disable:4996)
int main()
{
int num = 10 + 20;
}
위의 코드를 예시로 들면...
1. 정수 10, 20이 메모리에 상수로 저장됨 <- 리터럴 상수
2. 두 상수를 연산
3. 연산 결과를 num변수에 저장
| 접미사 | 자료형 | 예제 |
|---|---|---|
| U | unsigned int | unsigned int n1 = 1025U |
| L | long | long n2 = 1025L |
| UL | unsigned long | unsigned long n3 = 1027UL |
| LL | long long | long long n4 = 1035LL |
| ULL | unsigned long long | unsigned long long n5 = 1025ULL |
| F | float | float n6 = 3.17F |
| L | long double | long double n7 = 5.79L |
#include<stdio.h>
#pragma warning(disable:4996)
int main()
{
int a = 10;
const int* ptr = &a;
// *ptr = 30; // 에러 발생
a = 20; // 정상적으로 변경
}
#include<stdio.h>
#pragma warning(disable:4996)
int main()
{
int a = 10;
int b = 30;
int* const ptr = &a;
// ptr = &b; // 에러 발생
*ptr = 20; // 정상적으로 변경
}