檢查程式碼片段的輸出時:
#include <stdio.h> int main(void) { printf("sizeof(char) = %zu\n", sizeof(char)); printf("sizeof('a') = %zu\n", sizeof('a')); }
人們可能會注意到C 和C 之間的字元常數'a' 的大小不同。讓我們深入研究這種差異背後的原因。
在 C 中,像「a」這樣的字元常數儲存為 int,其大小為 4 個位元組或特定於實現的值。然而,在 C 中, 'a' 的類型明確為 char,僅佔用 1 個位元組。
這種差異源自於兩種語言對字元常數的不同處理。 C 將字元常數視為整數(int 型別),而 C 則為字元引入了單獨的 char 類型。
因此,在 C 中,'a' 儲存為整數,解釋了它的 4 位元組大小。相反,在 C 中,「a」是一個字元 (char),因此大小為 1 個位元組。這種差異凸顯了兩種語言之間的微妙差異之一。
以上是為什麼 C 和 C 中 `sizeof('a')` 不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!