int main()
{
int a = 0;
unsigned int int_size1 = sizeof a;
unsigned int int_size2 = sizeof(int);
unsigned int int_size3 = sizeof(a);
//portable type이식성을 높이기 위함. 오픈소스에서 많이 쓰는 추세이다.
size_t int_size4 = sizeof(a);
size_t float_size = sizeof(float);
printf("Size of int type is %u bytes.\n", int_size1);
printf("Size of int type is %zu bytes.\n", int_size4);
printf("Size of float type is %zu bytes.\n", float_size);
}
int int_arr[30]; //int_arr[0] =1024;...
int* int_ptr = NULL;
int_ptr = (int*)malloc(sizeof(int) * 30); //int_ptr[0] =1024;...
printf("size of array = %zu bytes\n", sizeof(int_arr));
printf("size of pointer = %zu bytes\n", sizeof(int_ptr));
size of array = 120bytes
size of pointer = 4bytes
array는 컴파일때 알 수 있지만 pointer는 런타임때 결정된다.
char c = 'a';
char string[10]; //maximally 9 character + '/0' (null character)
size_t char_size = sizeof(char);
size_t str_size = sizeof(string);
printf("size of char type is %zu bytes.\n", char_size);
printf("size of string type is %zu bytes.\n", str_size);
null character가 문자열에서 마침표의 역할을 하므로 최대로 쓸수 있는 문자열은 9칸이다.
struct MyStruct
{
int i;
float f;
};
int main()
{
printf("%zu\n", sizeof(struct MyStruct));
return 0;
}
8
int + float = 8이다.
'개발공부 > C' 카테고리의 다른 글
printf()함수 (0) | 2019.10.15 |
---|---|
기호적상수와 전처리기 (0) | 2019.10.15 |
C언어 문자열 출력(직관적) (0) | 2019.10.15 |
부동소수점의 한계 (0) | 2019.10.15 |
고정너비정수 (0) | 2019.10.15 |