读书人

字符数组使用++操作报错咋回事

发布时间: 2012-06-07 15:05:14 作者: rapoo

字符数组使用++操作报错怎么回事?

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]

读书人网 >C语言

热点推荐