首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这个简单程序的输出结果为什么是9?解决方法

2012-02-25 
这个简单程序的输出结果为什么是9?#defineJFT(x)x*xmain(){inta,k3a++JFT(k+1)printf( %d ,a)}大家

这个简单程序的输出结果为什么是9?
#define   JFT(x)x*x
main()
{   int   a,   k=3;
a=++JFT(k+1);
printf( "%d ",a);
}
大家能否看看,谢谢。

[解决办法]
Kenmark(fenix) bigo~
[解决办法]
a = ++k+1*k+1;
->
a=++k+k+1;
这里就有歧义了,计算表达式时表达式前是否对后面部分有影响,如果有
则:
++k 使得k=4返回4
然后+k+1注意这里k已经改变为4所以结果是9
如果“同表达式内前后变量改变不影响”那么就该是8

热点排行