spring源码深度:C语言问题

来源:百度文库 编辑:神马品牌网 时间:2024/05/05 18:00:14
main()
{int a=0,t=0;
whiel(!a!=0) t+=a++;
{printf(〃%d,%d\n〃,t,a); }
则程序运行后的输出结果是()

0,1
因为t+=a++相当于t=t+ a++
先使用a的值 a自身再加1
所以输出是 0,1
0,1
因为t+=a++相当于t=t+ a++
先使用a的值 a自身再加1
所以输出是 0,1
0,1
因为t+=a++相当于t=t+ a++
先使用a的值 a自身再加1
所以输出是 0,1
0,1
因为t+=a++相当于t=t+ a++
先使用a的值 a自身再加1
所以输出是 0,1
0,1
因为t+=a++相当于t=t+ a++
先使用a的值 a自身再加1
所以输出是 0,1
0,1
因为t+=a++相当于t=t+ a++
先使用a的值 a自身再加1
所以输出是 0,1
0,1
因为t+=a++相当于t=t+ a++
先使用a的值 a自身再加1
所以输出是 0,1
0,1
因为t+=a++相当于t=t+ a++
先使用a的值 a自身再加1
所以输出是 0,1

0,1

0,1
因为t+=a++相当于t=t+ a++
先使用a的值 a自身再加1
所以输出是 0,1

有电脑以后
不要问这种问题
你可以自自己试一下

TC编译结果
0 1
你程序有错
改了后才能执行

0 1
原因是:式子"a++"是a加1之前的值,式子"++a"是a家1之后的值.
比如:i=0;a=0;
i=a++;//执行后,i=0;a=1;

i=0;a=0;
i=++a;//执行后,i=1,a=1;

那么你的那个式子可以解释为:t=t+a++;
所以是t=0+0=0;a++;
所以是0和1..