본문 바로가기
공부/C언어

[C언어] C언어 기본 자료형과 상수, 메모리 크기 이해하기

by 강갱갱 2025. 6. 14.

C언어 기본 자료형과 상수, 메모리 크기 이해하기

3장. C언어 기본 개념 정리

1. sizeof(변수)

sizeof 연산자는 변수 또는 자료형이 메모리에서 차지하는 크기를 바이트 단위로 알려줍니다.

예를 들어, int형 변수는 보통 4바이트, char형 변수는 1바이트, float형 변수는 4바이트를 차지합니다.

이를 통해 변수의 메모리 크기를 확인하고, 메모리 관리를 효율적으로 할 수 있습니다.

int a;
printf("%zu", sizeof(a));  // 보통 4 출력

2. unsigned int와 양수 표현

unsigned int는 부호가 없는 정수형으로, 0 이상의 양수만 표현합니다.

예를 들어, unsigned int speed;는 음수를 저장하지 않고 0부터 최댓값(약 42억)까지 저장할 수 있습니다.

3. 오버플로우(Overflow)

오버플로우란 변수가 표현할 수 있는 최대값을 넘는 수를 저장하려 할 때 발생하는 현상입니다.

예를 들어, 1바이트 unsigned char는 0~255까지 표현 가능한데, 255에 1을 더하면 다시 0으로 돌아갑니다.

값이 최소값부터 다시 시작하는 현상이며, 프로그래밍 시 주의가 필요합니다.

4. 정수형 상수 표기법

정수 상수 뒤에 붙는 문자로 상수의 자료형을 지정할 수 있습니다.

  • u 또는 U : unsigned int (예: 123u, 123U)
  • l 또는 L : long (예: 123l, 123L)
  • ul 또는 UL : unsigned long (예: 123ul, 123UL)

5. 8진수와 16진수 표현법

숫자를 8진수 또는 16진수로 표현할 때는 다음과 같습니다.

  • 8진수 : 숫자 앞에 0을 붙이면 8진수로 인식 (예: 0200)
  • 16진수 : 숫자 앞에 0x 또는 0X를 붙이면 16진수로 인식 (예: 0x80)

예를 들어,

printf("%#x %#o\n", 128, 128);

위 코드는 각각 128을 16진수 0x80, 8진수 0200로 출력합니다.

6. 기호 상수 (매크로 상수)

#define을 사용하면 이름에 특정 값을 지정할 수 있습니다.

#define A 20

이렇게 하면 코드 내에서 A는 자동으로 20으로 대체됩니다. 가독성을 높이고 유지보수를 쉽게 도와줍니다.

7. const 키워드로 상수 선언

매크로 대신 타입 검사가 가능한 상수를 선언하려면 const를 사용할 수 있습니다.

const int A = 20;

이 방법은 컴파일러가 타입을 체크해 주므로 더 안전하게 사용할 수 있습니다.


이번 장에서는 C언어 변수의 메모리 크기 확인, 부호 없는 정수형, 오버플로우, 정수형 상수 표기법, 진법 표현법, 그리고 상수 선언

반응형