表达式x++;
和x*2;
被报告为非法。编译器产生错误。但是,如果是 x+1;
,则不会报告错误。
任何人都可以帮助我理解为什么特定的表达方式是非法的吗?或者,换句话说,为什么添加是合法的?
代码:
#include <stdio.h>
int main(void)
{
int x[]={1,2,3,4,5};
x++;
x+1;
x*2;
}
最佳答案
这三个语句中
x++;
x+1;
x*2;
只有两条语句是非法的。本声明
x+1;
是正确的。在这种情况下,在表达式中,数组指示符被转换为指向其第一个元素的指针。
没有为指针定义乘法运算符。所以这个说法
x*2;
非法。
数组是不可修改的左值。您不能更改数组指示符。所以这个说法
x++;
非法。
关于c - 为什么以下数组操作是非法的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44020006/