字符数组使用++操作报错怎么回事?
- C/C++ code
#include<stdio.h>int main(void){ char a[5]="hello"; char *b=a; while(*b!='\0') { printf("%c",*b); b++; } while(*a!='\0') { printf("%c",*a); a++; //此行代码报错:自增操作数必须是左值 } printf("\n"); return 0;}gcc 版本 4.6.3
错误信息:错误: 自增操作数必须是左值
这是怎么回事?字符数组不能这样自增?那不知道长度时不借助sizeof,怎么遍历?
[解决办法]
这是数组名,不是左值,不能自增。。
想遍历,就一定要只知道元素个数,或者放置特殊的数据标识
[解决办法]
因为数组指针是const,不能进行自增运算,至于报的错误就看不明白了,可能跟编译有关吧
[/code]