【问题标题】:Increment int pointer value - Doesn't work递增 int 指针值 - 不起作用
【发布时间】:2019-10-05 20:52:30
【问题描述】:

我正在尝试打印一个 int 数组,但它给了我一个错误。

错误:需要左值作为增量操作数

int *a[] = {1,2,3,4,5};
for(int i=0;i<5;i++)
{
    printf("%d",*a);
    a++;
}

【问题讨论】:

  • 要声明一个数组,你必须使用int a[] = {1,2,3,4,5}; 而不是int *a[] = {1,2,3,4,5};在进入你的循环之前使用 int *p=a;然后,在循环中,递增 ++p。您不能修改a,因为它是指向数组开头的不可变指针

标签: c arrays pointers increment


【解决方案1】:

int *a[] 表示指向整数的指针数组。你想要一个整数数组,所以使用int a[]

您不能增加a,因为a 是一个数组,而不是一个指针。数组有时会衰减为指向第一个元素的指针,但您不能修改该指针。相反,创建一个指向数组中元素的指针,如 int *p = a 或使用下标运算符如 a[i] 来访问元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-09
    • 2021-05-22
    • 1970-01-01
    • 2018-09-08
    • 2015-09-27
    • 1970-01-01
    相关资源
    最近更新 更多