c的程序填空

来源:百度知道 编辑:UC知道 时间:2024/05/18 11:08:54
# include <stdio.h>
int a=3;
main()
{
int s=0;
{
int a=5;
s+=a++;
}
s+=a++;printf("%d\n",s);
}
答案是8为什么

第一个a=3为全局定义,作用整个程序!而第二个a=5为局部定义,只在所在大括号内起作用,而s+=a++是先用a然后本身加1变为6,但当大括号结束就失去作用了,而s=a+0=5+0=5。接下来的s+=a++中的a是全局的,应为3,所以本句的运算为s=s+a=5+3=8即结果为8

不知道你要填的空是不是这个程序的运行结果
运行结果是:8