C – array ++ vs array 中的数组增量类型

我想知道array[i]++array[i++]什么区别,其中array是一个int array[10]

 int a[] = {1, 2, 3, 4, 5}; int i = 1; a[i]++; printf("%d %d\n", i, a[i]); a[i++]; printf("%d %d\n", i, a[i]); 

产量

 1 3 2 3 

a[i]++增加索引i处的元素,它不会增加i 。 并且a[i++]递增i ,而不是索引i处的元素。

  • array[i]++增加array[i]++的值。 表达式在递增之前计算为array[i]
  • array[i++]递增i的值。 在i递增之前,表达式求值为array[i]

一个例证。

假设该array包含三个整数,0,1,2,并且i等于1。

  • array[i]++array[1]更改为2,计算结果为1并使i等于1。
  • array[i++]不修改array ,计算结果为1并将i更改为2。

您在此处使用的后缀运算符在递增之前计算表达式的值。

array[i]++表示( *(array+i) )++ 。 – >增加值。

array[i++]表示*( array + (i++) ) 。 – >递增索引。

这里,Array [i] ++递增元素数组[i]的值,但是array [i ++]递增i值,该值影响或改变数组元素的指示,即它指示数组后的数组的nxt元素[i ]。

这里array [i ++]递增索引号。
相反,array [i] ++增加i索引的数据值。

代码片段:

 #include  using namespace std; int main() { int array[] = {5, 2, 9, 7, 15}; int i = 0; array[i]++; printf("%d %d\n", i, array[i]); array[i]++; printf("%d %d\n", i, array[i]); array[i++]; printf("%d %d\n", i, array[i]); array[i++]; printf("%d %d\n", i, array[i]); return 0; } 
 #include using namespace std; int main() { int arr[]={1,2,37,40,5,7}; int i = 3; arr[i]++; cout< 

输出:

 3 41 4 5 

在这个例子中,i = 3,所以,arr [3] = 40,然后它将值40增加到41.So arr [i] ++递增该特定索引的值,并且[i ++]首先递增索引,然后给出这个索引的值。