複合文字
C 標準在 C11-§6.5.2.5/ 3 中說:
字尾表示式由帶括號的型別名稱後跟括號括起的初始值設定項列表組成,是一個複合文字。它提供了一個未命名的物件,其值由初始化列表給出。 99)
和腳註 99 說:
請注意,這與強制轉換表示式不同。例如,強制轉換指定轉換為標量型別或僅指定 void ,並且轉換表示式的結果不是左值。
注意:
字串文字和具有 const 限定型別的複合文字不需要指定不同的物件。 101)
101)這允許實現共享具有相同或重疊表示的字串文字和常量複合文字的儲存。
示例以標準給出:
C11-§6.5.2.5/ 13:
與字串文字一樣,const 限定的複合文字可以放入只讀記憶體中,甚至可以共享。例如,
(const char []){"abc"} == "abc"
如果文字的儲存是共享的,則可能會產生 1。