반응형
sizeof 연산자
- sizeof 연산자는 바로 다음에 나오는 상수, 변수나 자료형이 점유하고 있는 메모리의 byte수를 구해주는 전위 표기 단항 연산자이다.
- sizeof 연산자는 바로 다음에 나오는 수식이나 자료형은 반드시 괄호를 사용해야 한다.
- sizeof 연산자는 연산자로 특수기호를 사용하지 않고, 예약어를 사용한다.
- sizeof 연산자는 프로그램의 이식성을 향상시킬 수 있다.
예제)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include <stdio.h>
main() {
short x = 0;
long y = 0;
printf("Short Integer x : %d\n", sizeof y);
printf("Integer : %d\n", sizeof(int));
printf("Long + Integer : %d\n", sizeof y + sizeof(int));
printf("Constant 3 : %d\n", sizeof 3);
printf("Expression : %d\n", sizeof(x + 3));
printf("Character : %d\n", sizeof(char));
printf("Float : %d\n", sizeof(float));
printf("Double : %d\n", sizeof(double));
printf("string : %d\n", sizeof("1234"));
printf("STRING : %d\n", sizeof("ㄱㄴㄷㄹ"));
}
|
cs |
여러 자료형의 사이즈를 출력하는데 자료형의 관한 추가 설명은 여기 링크 [C언어 기초-02] 데이터 편 변수와 자료형
7행 : short로 선언된 x는 2byte이다.
8행 : Integer는 4byte
9행 : long의 사이즈(4byte)와 int의 사이즈(4byte)를 더하면 8byte이다.
10행 : 상수 3 도 4byte
11행 : short는 2byte 상수는 4byte인데 두 개를 더하면 당연히 큰사이즈 쪽으로 맞춰진다. 그래서 4
12행 : character는 유명한 1byte다.
13행 : 실수 자료형 float도 4byte다.
14행 : 마찬가지 실수 자료형이지만 double은 float의 두배 사이즈를 차지한다. 8
15행 : 문자열 1234는 문자 하나당 1byte씩 차지한다.
그러나 c에서는 문자열 끝에 null을 넣어서 4글자면 총 5byte 사이즈가 된다. null을 넣는 이유는 컴퓨턱가 문자열의 끝을 알기 위해서라고 한다.
16행 : 마찬가지지만 한글은 한글자당 2byte를 차지하게 되어 ㄱㄴㄷㄹ 네글자면 8에 null 1byte 추가해서 총 9byte다.
반응형
'프로그래밍 > c언어 기초공부' 카테고리의 다른 글
[C언어 기초-13] 캐스트 연산자(cast operator) (0) | 2024.08.03 |
---|---|
[C언어 기초-12] 콤마 연산자(comma operator) (0) | 2024.08.02 |
[C언어 기초-11] 조건 연산자(conditional operator) 삼항 연산자 (0) | 2024.08.01 |
[C언어 기초-10] 복합 대입 연산자 (산술 대입 연산자, 비트 대입 연산자) (0) | 2024.08.01 |
[C언어 기초-09] 비트 연산자 논리 연산자 ~, &, |, ^ (0) | 2024.01.25 |
댓글