【发布时间】:2018-01-21 05:47:14
【问题描述】:
字符串文字是一个左值。
可以使用左值:
作为地址运算符的操作数(除非左值指定位域或被声明为寄存器)。
作为前/后递增和递减运算符的操作数。
作为成员访问(点)运算符的左侧操作数。
作为赋值运算符和复合赋值运算符的左侧操作数。
as ...(任何可以用作值但我想列出的东西)
我想知道如何在 C 程序中将字符串文字用作上述运算符的操作数?
谢谢。
【问题讨论】:
-
说字符串文字是只读的左值有帮助吗?
-
C99 及更高版本(或更早的带有扩展名)提供 compound literal 允许您使用一点 slight-of-hand (或programming legerdemain)创建一个可修改的左值,否则会创建一个文字,例如
char *literal = (char[]){"my string literal"};。是的,它只是一个数组,但它也是一个文字。
标签: c