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 ++]首先递增索引,然后给出这个索引的值。