24小时热门版块排行榜    

查看: 1433  |  回复: 13
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

sharayan

新虫 (初入文坛)

[求助] 怎样;理解子函数

int func(int a,int b)
{
int c;
c=a+b;
return c;
}
main()
{
int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf("%d\n",r);
}
这个题怎样理解呢?为什么结果是21呢?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)


dubo(金币+1): 谢谢应助,说的挺有道理的 2011-05-24 11:34:55
这代码风格相当差啊。

本问题有两点,理解了就知道为什么得到那个结果了:

1. ++和--的前缀和后缀的区别
2. “,” 算符的规则

LZ可自己研究书上关于以上两点的知识,自解就明白为什么了。其他高手不要再解释,给新手一个学习的机会。

如果LZ是在做某某练习题,推荐立刻扔之。
7楼2011-05-24 09:34:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 14 个回答

yalefield

金虫 (文坛精英)

老汉一枚


余泽成(金币+1): 嘿嘿! 2011-05-23 19:22:00
谁要是敢给我写这样的代码,我就雇个弹钢琴的做一些机械性的重复动作。
2楼2011-05-23 18:57:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

文俊点点

木虫 (著名写手)

【答案】应助回帖


sharayan(金币+1): 谢谢哈 ,我明白了,非常感谢! 2011-05-23 20:00:08
余泽成(金币+1): 欢迎常来程序语言版! 2011-05-23 20:58:26
有多个参数时,把最后一个作为函数的参数,有过前面的x--y++,x=5,y=8,故x+y=13.z--是先使用再减一的,z为8.结果为21.
先使用再减一,有多个参数时,最后一个为传递参数。
这是你所拥有的时间·····这是你所能改变的生活·········
3楼2011-05-23 19:47:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huycwork

金虫 (著名写手)


余泽成(金币+1): 鼓励应助! 2011-05-23 21:01:30
俺建议你学Perl,Perl里面有一个最小意外原则,即:你脑子里面想的是什么,那它大概就是什么。你要不想意外,可以use strict让Perl提醒你哪里可能会出意外。
写这样的代码的人才学C真是浪费了。
漩涡的中心有一块空地,空空的。
4楼2011-05-23 19:51:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见