0
字符串文字是一個左值。如何將字符串文字用作其他左值?
左值可採用:
作爲操作數的地址的操作(除非左值表示一比特字段或被宣佈寄存器)。
作爲前/後增量和減量運算符的操作數。
作爲成員訪問(點)運算符的左側操作數。
作爲賦值和複合賦值運算符的左側操作數。
爲...(其中任何一個值可以作爲,但我錯過名單)
我想知道如何字符串字面可以作爲在C以上運營商的操作數程序?
謝謝。
字符串文字是一個左值。如何將字符串文字用作其他左值?
左值可採用:
作爲操作數的地址的操作(除非左值表示一比特字段或被宣佈寄存器)。
作爲前/後增量和減量運算符的操作數。
作爲成員訪問(點)運算符的左側操作數。
作爲賦值和複合賦值運算符的左側操作數。
爲...(其中任何一個值可以作爲,但我錯過名單)
我想知道如何字符串字面可以作爲在C以上運營商的操作數程序?
謝謝。
您的項目符號2和4需要可修改的左值,它排除了數組。字符串文字是數組,所以它們不是可修改的左值。
第一個是確定的,允許&"hello"
,雖然這是不常用的用法。
第三個,.
的左側必須有struct類型,而字符串文字不是。但是,請注意.
的左側操作數實際上並不需要是左值。
這有助於說字符串文字是隻讀的左值? – Evert
C99及更高版本(或帶有擴展名的更早版本)提供了*複合文字*,它允許您使用一些*輕微*(或*編程legerdemain *)創建一個可修改的左值,否則將創建文字,例如'char * literal =(char []){「my string literal」};'。是的,它只是一個數組,但它也是一個文字。 –