首頁 > 後端開發 > C++ > 為什麼 C 和 C 中 `sizeof('a')` 不同?

為什麼 C 和 C 中 `sizeof('a')` 不同?

Barbara Streisand
發布: 2024-12-21 14:28:10
原創
320 人瀏覽過

Why Does `sizeof('a')` Differ in C and C  ?

為什麼C 中的'a' 需要比C 更多的位元組

檢查程式碼片段的輸出時:

#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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板