Language/C

[ C ] sizeof 연산자

곽수진 2021. 9. 13. 16:19
반응형

sizeof

데이터형이나 어떤 값의 바이트 크기를 구하는 연산자

→ 데이터형의 크기는 플랫폼에 따라 다름

sizeof(데이터형)
sizeof(값)

 

 

Ex)

sizeof(short)
sizeof(123)

 

 

→ sizeof 연산자는 데이터형뿐만 아니라 변수나 값에도 사용할 수 있음

#include<stdio.h>

int main(void){
    
    int a;
    
    printf("sizeof a : %d\n", sizeof(a));
    
    printf("size of 3.14 : %d\n", sizeof(3.14));
    
    return 0;}

 

결과값 출력 모습

sizeof(a) : 변수 a의 바이트 크기를 구함

sizeof(3.14) : 실수값 3.14의 바이트 크기를 구함

 

 

Ex)

#include<stdio.h>

int main(void) {

    printf("%d %d %d %d %d \n\n", sizeof(int), sizeof(char), sizeof(short), sizeof(4.5), sizeof('d'));
}

 

결과값 출력 모습

sizeof(int) : int의 메모리 값은 4byte

sizeof(char) : char의 메모리 값은 1byte

sizeof(short) : short의 메모리 값은 2byte

sizeof(4.5) : 숫자 4.5가 차지하는 메모리 값은 8byte

sizeof('d') : 문자 d가 차지하는 메모리 값은 4byte

→  char는 1byte로 출력되는 이우 : 4byte 문자를 1byte줄여서 출력

 

 

★ 지수승 표현 ★

#include<stdio.h>

int main(void) {
    double y = 23.45e-3;
    printf("%.3f %d \n", y, sizeof(y));

    float k = 3.4;
    printf("%f %d\n", k, sizeof(float));
}

 

결과값 출력 모습

e : 지수승 표현

double y = 23.45e-3 : 23.45를 10의 -3승으로 표현(소수점 3자리까지 출력)

 

%.3f : 실수를 소수점 3자리까지만 출력함

%e : 지수승 출력 지정 서식 문자

 

sizeof(y) : 변수 y에 저장된 23.45가 8byte를 차지함

 

sizeof(float) : float형의 크기는 4byte

반응형