注册
登录
论坛
搜索
社区银行
帮助
导航
私人消息 (0)
公共消息 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
黑色海岸线论坛
»
网络安全
» 会C的请进!!
返回列表
发帖
woxiaocang
该用户已被删除
楼主
跳转到
»
正序看帖
打印
字体大小:
t
T
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);
}
就没有影响.谁能告诉我??
收藏
分享
发短消息
加为好友
天空飞人
当前离线
Member
帖子
0
我的爱好
阅读权限
10
来自
普陀区
在线时间
0 小时
黑海舰队列兵
主题
0
积分
0
贝壳
0 个
来自
普陀区
注册时间
2006-11-23
最后登录
2006-11-23
5
楼
天空飞人
发表于 2005-6-4 12:52
|
只看该作者
会C的请进!!
第二个第四行i值并没有改变所以第五行输出时没影响
TOP
飞鸟设计
该用户已被删除
地板
飞鸟设计
发表于 2005-5-27 04:46
|
只看该作者
会C的请进!!
:) x86斑竹是很热心的哦~
TOP
woxiaocang
该用户已被删除
板凳
woxiaocang
发表于 2005-5-26 21:21
|
只看该作者
会C的请进!!
呵呵,果然是斑竹啊,我明白了,谢谢!!嘿嘿..
TOP
x86
该用户已被删除
沙发
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
TOP
返回列表
回复
发帖
使用交流
网络安全
网络技术
娱乐休闲
灌水乐园
文学天地
美图欣赏
网站办公
站务处理
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]