【发布时间】:2015-02-05 19:18:47
【问题描述】:
我正在用 C 编写一个小函数来消除前导空格,但它给了我“表达式必须是可修改的左值”
char str1[20];
strcpy (str1, otherStr);
for (int i = 0; i < strlen(str1); i++)
{
if (!isspace(str1[i]))
str1 = &(str1[i]);
}
我在这里做错了什么? (是的,otherStr 已定义)
【问题讨论】:
-
你不能改变数组的位置,它是编译器在编译时静态分配的。数组确实衰减指向指针,但它们不是指针。如果你想用它作为一个真正的指针,那么你需要使用一个实际的指针。
-
您的代码中没有
char *指针。数组不是指针。