자료형(타입)의 크기를 바이트(byte) 단위로 구하는 sizeof 연산자
컴파일러가 수행하고 CPU가 실행하지 않는 특수한 연산자
sizeof 표현식
sizeof(자료형)
sizeof(표현식)
#include <stdio.h>
int main() {
int num = 0;
int sz1,sz2;
sz1 = sizeof(num); // 변수 num의 자료형 크기를 구함
sz2 = sizeof num ; //괄호가 필수가 아니다.
printf("num 크기: %d byte\n", sz1);
printf("num 크기: %d byte\n", sz2);
}
sizeof int와 같은 형식으로는 자료형의 크기를 구할 수 없다
>> sizeof(자료형) 형식사용
sizeof 연산자는 피연산자의 자료형에 대한 연산 >> sizeof(5) = sizeof(int)
#include <stdio.h>
int main() {
int n = sizeof(5);
printf("%d", n); //4
}
//int형은 4바이트 sizeof(5)의 결과는 4
sizeof n+2; n을 수정할 수 없다.
#include <stdio.h>
int main() {
int n = 10;
printf("%d\n", sizeof(n+10)); //4
}
배열
#include <stdio.h>
int main() {
int n[10] = {0,};
printf("%d\n", sizeof(n)); //40
}
함수가 아닌 이유
모든 자료형을 피연산자로 받을수가 있다.
괄호가 불필요하다 sizeof n
주소의 출력 안됨
sizeof n+2; n을 수정할 수 없다.
void, 함수를 제외 모든 타입이 피연산자가 될 수 있다.
함수는 런타임(또는 인라인)에 실행, sizeof는 컴파일 시간에 실행
'C > C' 카테고리의 다른 글
배열 2 - 출력 (0) | 2022.10.06 |
---|---|
gets() - 문자열 입력 (0) | 2022.10.05 |
scanf() 표준 입력 함수 (0) | 2022.10.04 |
배열 1 - 배열의 선언과 접근 , 초기화 (0) | 2022.10.04 |
포인터 pointer 4 - 이중 포인터, 주의할 점 (0) | 2022.10.04 |