C编程; 需要左值

me_*_*jay 1 c pointers lvalue

可能重复:
左值必需错误

我的C程序出错了

main () {
    int arr[] = {1, 2, 3, 4};
    printf("%d", *arr);
    arr++;
    printf("%d", *arr);
}
Run Code Online (Sandbox Code Playgroud)

当我编译这段代码时,我得到左值所需的错误.对于带有arr ++的行.任何帮助!

zmb*_*mbq 5

arr是一个常数,你不能改变它的价值.你可以添加一个

int *p = arr;
Run Code Online (Sandbox Code Playgroud)

然后做一个

p++;
Run Code Online (Sandbox Code Playgroud)

  • 你应该在这里解释"arr"不仅仅是一个常数 - 它是一个数组,而不是一个指针.虽然C使数组和指针看起来很相似,但它们不是同一类 - 你不能增加数组. (2认同)