| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 559 人关注过本帖
标题:这个程序为什么运行结果是21?
取消只看楼主 加入收藏
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
结帖率:85.29%
收藏
 问题点数:0 回复次数:4 
这个程序为什么运行结果是21?
#include <stdio.h>
#include <stdlib.h>
int func(int a, int b)
{ int c;
  c=a+b;return c;}
  
int main()
{ int x=6,y=7,z=8,r;
  r=func((x--,y++,x+y),z--);printf("%d\n",r);  
  system("PAUSE");   
  return 0;
}
主要是没有弄明白r=func((x--,y++,x+y),z--);是个什么意思,请教中。。。
搜索更多相关主题的帖子: include system return 
2011-06-22 20:49
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
回复 2楼 lz1091914999
为什么,请讲详细一点呀?为什么是8?还有13,是6+7得来的,还是5+8得来的?
2011-06-22 20:58
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
回复 2楼 lz1091914999
为什么Z--在这里不发生作用?我把“--”删了以后重新compile,结果与有“--”是一样的。
但前面括号里的(x--,y++,x+y)中如果把“--”或“++”删了,结果就会发生变化,这是什么原因的?
2011-06-22 21:05
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
回复 5楼 voidx
不明白,Z--以后是7呀,13+7只等于20.
所以以结果来想,Z--那个位置上的值只是8.而且我刚才删了Z--后面的那个“--”符号重新compile,结果是没有任何变化的,为什么?为什么前面x--里的“--”会发生作用,而后面z--位置上的“--”不发生作用?
2011-06-22 21:12
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
回复 7楼 voidx
谢谢,已经明白了。其实还只是纠结于为什么前面括号里(x--,y++,x+y)中的自减1或自加1的符号会发生作用,而且后面z--中的自减1符号不发生作用?
2011-06-22 21:22
快速回复:这个程序为什么运行结果是21?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017359 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved