単項演算子で右側がオペランドになり、右に書いた表現に関連するbyte数を、演算の結果とします。 以下の3通りの使い方ができます。
使い方 | 簡単例 | 実行結果 |
---|---|---|
型を指定すると型の記憶に必要なbyte数が得られる |
struct d_t { double x, y }; printf("%d\n", sizeof(struct d_t)); printf("%d\n", sizeof(int)); printf("%d\n", sizeof(char)); |
16 4 1 |
配列名を指定すると配列全体のbyte数が得られる |
char a1[3]; int a2[3]; printf("%d\n", sizeof(a1)); printf("%d\n", sizeof(a2)); |
3 12 |
式を表現すると、式の結果を記憶するのに必要なbyte数が得られる |
struct d_t { double x; char y[2] } a = { 0.0 ,0 }; printf("%d\n", sizeof(a.x + 0.5)); printf("%d\n", sizeof(a.y[0])); |
8 1 |