lvalue required as increment operand

前端 未结 9 1709
清歌不尽
清歌不尽 2020-12-04 15:56

gcc 4.4.4

What am I doing wrong?

char x[10];
char y[] = \"Hello\";
while(y != NULL)
    *x++ = *y++;

Many thanks for any advice.

9条回答
  •  南笙
    南笙 (楼主)
    2020-12-04 16:39

    x++ is the short form of x = x + 1. However, x here is an array and you cannot modify the address of an array. So is the case with your variable y too.

    Instead of trying to increment arrays, you can declare an integer i and increment that, then access the i'th index of an arrays.

    char x[10], y[5] = "Hello";
    int i = 0;
    while (y[i] != 0)
    {
        x[i] = *y[i];
        i++;
    }
    x[i] = 0;
    

提交回复
热议问题