単項演算子で右側がオペランドになり、右に書いた表現に関連する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 |