字符串文字是左值。
可以使用左值:
作为address-of运算符的操作数(除非左值指定位字段或被声明为寄存器)。
作为前/后递增和递减运算符的操作数。
作为成员访问(点)运算符的左侧操作数。
作为赋值和复合赋值运算符的左手操作数。
as ...(可以使用任何值但我不想列出的任何内容)
我想知道字符串文字如何在C程序中用作上述运算符的操作数?
感谢。
答案 0 :(得分:2)
您的项目符号2和4需要可修改左值,这会排除数组。字符串文字是数组,因此它们不是可修改的左值。
第一个是好的,&"hello"
是允许的,虽然这是一种不常见的用法。
第三个,.
的左侧必须具有结构类型,字符串文字不具有结构类型。但请注意,.
的左侧操作数实际上并不需要是左值。