C/C

sizeof 연산자 O 함수 X

HicKee 2022. 10. 4. 15:48

자료형(타입)의 크기를 바이트(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