关于++n 与++n的区别

好多次没搞明白,这次再写一遍:

比如n = 0, a[++n] = x, 这里的++n是先进行++ 然后赋值a【1】 = x  

而a[n++] = x,这个是先运行a[0] = x,然后再++.区别很明显  

下面我用两个小程序来说明:

#include<stdio.h>
#define maxn 105
int a[maxn];
int main()
{
	int x, n = 0;
	while(scanf("%d", &x) == 1)
		a[n++] = x;                  //先赋值a[n] = x,然后再n++ 
	for(int i = n-1; i >= 1; i--)    //这里的i = n-1 要小心,建议手写一下过程。 
		printf("%d ", a[i]);                                  //因为是从a[0]开始的 
	printf("%d\n", a[0]);            //额外要输出第一个值a[0] 
	return 0;
}
#include<stdio.h>
#define maxn 105
int a[maxn];
int main()
{
	int x, n = 0;
	while(scanf("%d", &x) == 1)
		a[++n] = x;               //先加1然后再赋值.也就是没有a[0],从a[1]开始   
	for(int i = n; i >= 1; i--)    
		printf("%d ", a[i]);                                   
	//printf("%d\n", a[0]);            
	return 0;
}

猜你喜欢

转载自blog.csdn.net/oXunWuQiShi1/article/details/82811375