sizeof 運算子

使用型別作為運算元

計算給定型別的物件的型別 size_t 的位元組大小。需要圍繞型別的括號。

printf("%zu\n", sizeof(int)); /* Valid, outputs the size of an int object, which is platform-dependent. */
printf("%zu\n", sizeof int); /* Invalid, types as arguments need to be surrounded by parentheses! */

使用表示式作為運算元

計算給定表示式型別的物件的 size_t 型別的位元組大小。表示式本身未被評估。括號不是必需的; 但是,因為給定的表示式必須是一元的,所以最好始終使用它們。

char ch = 'a';
printf("%zu\n", sizeof(ch)); /* Valid, will output the size of a char object, which is always 1 for all platforms. */
printf("%zu\n", sizeof ch);  /* Valid, will output the size of a char object, which is always 1 for all platforms. */