为什么p [0] ++与C

时间:2018-06-25 16:56:05

标签: arrays pointers

当我尝试在C中执行这些代码时

#include <stdio.h>

int main(void)
{
     int arr[] = {10, 20};
     int *p = arr; 
     p[0]++;   // *(p)++;
     printf("arr[0] = %d, arr[1] = %d",arr[0], arr[1]);
     return 0;
}
  

输出:arr [0] = 11,arr [1] = 20

p[0]++;替换为*(p)++;

  

输出:arr [0] = 10,arr [1] = 20

请解释为什么。我知道a [i]相当于*(a + i)

2 个答案:

答案 0 :(得分:1)

表达式:

.set<x>

基本上使索引0处的值递增。

p[0]++; 

增加指向下一个地址的指针。

示例:

*(p)++

答案 1 :(得分:0)

可以使用以下代码:

p[0]++ means = p[0] + 1;
p[0]++ = 10 + 1;
p[0]++ = 11;

您无法对数组执行同一操作,所以要小心。

希望对您有帮助!