・配列のポインタを渡すと配列分
・構造体のポインタを渡すとアドレス分のみ
$ cat sizeof_struct.c #include <stdio.h> main(){ int size=0; int a=0; char d[20]; struct test_struct { int b; char c[20]; }; printf("int size=%d\n",sizeof(a)); printf("char size=%d\n",sizeof(d)); struct test_struct hoge; printf("struct size=%d\n",sizeof(hoge)); printf("struct pointer size=%d\n",sizeof(&hoge)); } $ ./a.out int size=4 char size=20 struct size=24 struct pointer size=8