在c语言中,数组 a[i++] 和数组 a[++i] 有区别吗?
首先我们先看下面的内容:
b = a++; //先计算表达式的值,即先把a赋值给了b;然后a再自加1。
b = ++a; //先a自加1后;然后把a自加后得到的赋值给b。
小结:谁在前面先计算谁!!!
有区别,举例说明:
1 #include <stdio.h> 2 3 int main () 4 { 5 int a[3] = {1,2,3}; 6 int i = 0; 7 printf("%d ",a[i++]);//输出的值为1,因为是i++,所以是先使用a[0]的值,i再加上1,即先输出a[0]的值。 8 9 i = 0; 10 printf("%d ",a[++i]);//输出的值为2,因为++i,所以先直接使i加1,再输出a[1]的值。 11 12 return 0; 13 }
在c语言中,数组 a[0]++; 又是什么意思?
a[0]表示数组中的第一个值,可以把它看成一个变量x,
a[0]++也就是数组中第一个值+1再存放到原位。
比如:int a[2];
其中a[0]=1; a[1]=5;
a[0]++以后,a[0]的值变为2。