输出:
6 5
4 8
具体原因如下:
#include <stdio.h>
int a = 3; //这个a是全局变量
main()
{
int s = 0;
{
int a = 5; //这个a是局部变量,作用范围仅在本{}内
s+=a++; //先执行s+=a,s = s+a = 0+5=5;然后执行a++,a=6,因为本作用域内有局部变量a,所以取就近的局部变量
printf("%d %d \n",a,s);//输出6 5
}
s+=a++; //出来大括号以后,{}里声明的a销毁了,此时使用全局变量a = 3
//先执行s+=a ,s= s+a= 5+3=8,然后执行a++,a=4
printf("%d %d \n",a,s);//输出4 8
}
输出: 6 5
4 8
a++就是a=a+1,第一次a++就a变成6了,第二次就是7