在C 和C 中,字串文字是所有文字都是r 的規則的一個例外-價值觀。 C 03 標準規定,其他文字是右值,而字串文字是左值。類似地,C99 標準將字串文字定義為左值。
這個差異源自於字串文字作為物件的本質。與表示固定值的其他文字不同,字串文字是數組類型的物件。在 C 中,數組只允許作為表達式中的左值存在。
為了讓字串文字更有用,將它們定義為指標型別而不是陣列型別是不切實際的。這將阻止在字串文字上套用 sizeof 運算子。
C99 標準引入了複合文字,它們也是左值。它們的引入顯示了向左值文字規範的轉變,而不是一個特殊的例外。複合文字允許建立使用特定值初始化的臨時物件。與字串文字一樣,它們以左值形式存在。
這種區別的原因也可能源自於硬體架構。在早期的計算機中,字串被儲存為字元數組而不是指向字元數組的指標。這種歷史背景可能影響了將字串文字定義為左值的選擇。
字串文字在 C 和 C 中被定義為左值,因為它們是陣列類型的物件。其他文字是固定值,而字串文字是可以修改或引用的物件。這種區別允許在程式設計中更靈活地使用字串文字。
以上是為什麼 C 和 C 中的字串文字是左值,而其他文字是 R 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!