37

我这里有char text[60];

然后我在一个if

if(number == 2)
  text = "awesome";
else
  text = "you fail";

它总是说表达式必须是一个可修改的 L 值。

4

1 回答 1

54

lvalue意思是“左值”——它应该是可分配的。您不能更改 的值,text因为它是一个数组,而不是一个指针。

要么将其声明为 char 指针(在这种情况下,最好将其声明为const char*):

const char *text;
if(number == 2) 
    text = "awesome"; 
else 
    text = "you fail";

或者使用 strcpy:

char text[60];
if(number == 2) 
    strcpy(text, "awesome"); 
else 
    strcpy(text, "you fail");
于 2011-05-15T13:45:33.337 回答