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

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

Patricia Arquette
Patricia Arquette原創
2024-12-26 07:22:29231瀏覽

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

C 和C 中的字元大小差異

在C 和C 中, sizeof 運算子提供有關資料類型或資料大小的資訊多變的。透過使用此運算符檢查程式的輸出,程式設計師可以了解有關他們正在使用的資料的關鍵細節。然而,令人驚訝的是,當將 sizeof 運算子應用於 C 和 C 之間的字元值時,會產生不同的結果。

考慮以下C 程式:

執行時,程式將列印:

現在,讓我們看看用C 編寫的同一個程式:

在 C中運行時,輸出:

主要區別在於 C 和 C 在內部如何表示字元常數。在 C 中,像「a」這樣的字元常數被視為具有對應 ASCII 值的整數。這就是為什麼 sizeof('a') 在 C 中傳回 4,因為整數的大小通常為 4 個位元組。另一方面,在 C 中,字元常數被視為 char 資料類型,其大小為 1 個位元組。

以上是為什麼 C 和 C 之間 `sizeof('a')` 不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn