c - 增加 int 指针值 - 不起作用

标签 c arrays pointers increment

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

error: lvalue required as increment operand

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

最佳答案

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

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

关于c - 增加 int 指针值 - 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56204773/

相关文章:

c - 如何连续声明结构而不将其设为数组?

c - 如何在 C 中使用灵活的数组来保留多个值?

java - 将 2 个数组中的非重复数字移至新数组中

C++ 指向 char 数组

c - 将参数从指针传递到非封闭地址空间时出错

c - 当转换 const 指针时,c 中的 const 限定符是否被保留?

c++ - 使用递归与使用堆栈遍历有序二叉树的优缺点

c - 搜索二叉树然后更新重复计数

c - 我被这段代码困住了,对 FILE 结构和 fopen 函数有疑问

c - 尝试计算C中字符串中有多少个字符