数组增量定位相对于C中的索引器- array[i]++ vs array[i++]

mpbci0fu  于 2023-04-29  发布在  其他
关注(0)|答案(8)|浏览(113)

array[i]++(括号外的增量)和array[i++](括号内的增量)之间有什么区别,其中数组是int array[10]

camsedfj

camsedfj1#

int a[] = {1, 2, 3, 4, 5};
int i = 1; // Second index number of the array a[]
a[i]++;
printf("%d %d\n", i, a[i]);
a[i++];
printf("%d %d\n", i, a[i]);

输出
a[i]++递增索引为i的元素,但不递增i。并且a[i++]递增i,而不是索引i处的元素。

5jdjgkvh

5jdjgkvh2#

  • 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。

这里使用的后缀运算符在表达式递增之前计算为表达式的值。

oalqel3c

oalqel3c3#

array[i]++表示( *(array+i) )++。--〉增加值。
array[i++]表示*( array + (i++) )。--〉增加索引。

jrcvhitl

jrcvhitl4#

这里Array[i]++增加元素array[i]的值,但array[i++]增加i的值,这影响或改变数组元素的指示(i.也就是说,它表示数组中array[i]之后的下一个元素)。

iezvtpos

iezvtpos5#

假设我们有这个例子,array[i++] = x[m++]。这意味着首先设置array[i] = x[m],然后增加索引,如i + 1m + 1

4c8rllxm

4c8rllxm6#

我认为还值得一提的是,array[++i]在求值前 * 递增,正如前面提到的,array[i++]在求值后 * 递增i(或索引)值。
示例:

array[++i]; = i++; array[i];

array[i++]; = array[i]; i++;
de90aj5v

de90aj5v7#

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

#include <iostream>
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;
}
i1icjdpr

i1icjdpr8#

#include<iostream>
using namespace std;
int main()
{
    int arr[]={1,2,37,40,5,7};
    int i = 3;
    arr[i]++;
    cout<<i<<" "<<arr[i]<<endl;
    arr[i++];
    cout<<i<<" "<<arr[i]<<endl;
    return 0;
}

输出:

3 41
4 5

在这个例子中是i = 3,所以是arr[3] = 40。然后将值从40增加到41。所以arr[i]++递增这个特定索引的值,a[i++]首先递增index,然后给出这个索引的值。

相关问题