我正在用 C 编写一个消除前导空格的小函数,但它给了我“表达式必须是可修改的左值”
char str1[20];
strcpy (str1, otherStr);
for (int i = 0; i < strlen(str1); i++)
{
if (!isspace(str1[i]))
str1 = &(str1[i]);
}
我在这里做错了什么? (是的,定义了 otherStr)
最佳答案
您的代码中没有 char *
指针,这可能会发生变化。数组不是指针。你不能“改变”它的位置。
在 C 语言中,数组对象本身是不可修改 左值,这就是错误措辞的来源。
关于c - 尝试更改 char* 指针位置时出现 "Error: expression must be a modifiable lvalue",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28352234/