好多次没搞明白,这次再写一遍:
比如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;
}