标题:
会C的请进!!
[打印本页]
作者:
woxiaocang
时间:
2005-5-26 21:01
标题:
会C的请进!!
main()
{
int i=1,j=2,k=3,m=4;
printf("%d\n",i+=j+k);
printf("%d,%d\n",i+=j+k,j*=k=m=5);
}
为什么两次i+=j+k的值不一样呢?而
main()
{
int i=1,j=2,k=3,m=4;
printf("%d\n",i);
printf("%d,%d\n",i,k);
}
就没有影响.谁能告诉我??
作者:
x86
时间:
2005-5-26 21:16
标题:
会C的请进!!
这是一个函数参数入栈顺序的问题,在c中参数默认是最后的先入栈
printf("%d\n",i+=j+k);
这里计算了i=6;
printf("%d,%d\n",i+=j+k,j*=k=m=5);
这里先计算的m=5,然后是k=m,然后是j*=k,j=j*k j==2*5==10,然后计算j+k==10+5==15,然后计算i+=15从而i=6+15==21
作者:
woxiaocang
时间:
2005-5-26 21:21
标题:
会C的请进!!
呵呵,果然是斑竹啊,我明白了,谢谢!!嘿嘿..
作者:
飞鸟设计
时间:
2005-5-27 04:46
标题:
会C的请进!!
:) x86斑竹是很热心的哦~
作者:
天空飞人
时间:
2005-6-4 12:52
标题:
会C的请进!!
第二个第四行i值并没有改变所以第五行输出时没影响
欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/)
Powered by Discuz! 7.2