【发布时间】:2017-08-09 16:12:08
【问题描述】:
int arr[5];
arr++;
arr+4; //compile with only this
printf("%u", arr);
为什么 C 语言编译器不能编译 arr++ 说“需要左值”但可以
使用arr+4 编译成功? arr++ 符号的左值概念是什么?
【问题讨论】:
-
arr最终不是左值(因为它是衰减的结果),您只能对左值使用修改增量运算符。添加没有这样的限制(例如说1 + 1是有效的)。 -
发布一个完整的程序,其他人可以编译和测试。
标签: c