| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 391 人关注过本帖
标题:[求助] 函数调用问题
只看楼主 加入收藏
lujunhuan
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-11-30
收藏
 问题点数:0 回复次数:3 
[求助] 函数调用问题

int a=2;
int fun (int *a)
{
return (*a)++;
}

main ()
{
int s=0;
{
int a=5;
s+=fun (&a);
printf ("%d\ts1=%d\n", a, s);
}
s+=fun (&a);
printf ("%d\t", a);
printf ("s2=%d", s);
getch ();
}

为什么 s1=5 而不是 s1=6,
s2=7 而不是 s2=9。

搜索更多相关主题的帖子: 函数 
2006-12-31 16:08
剑风曲
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2006-11-16
收藏
得分:0 
你用(*a)++,
++在后面,是先使用,后自增,所以,在自增加之前就已经执行return语句了,也就是没有自曾.
2006-12-31 16:14
smartwind
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2006-11-13
收藏
得分:0 

a还是有+1,只是函数返回的值是+1前的,所以在第一个printf前:
s=0+5=5,a=6


2006-12-31 17:10
lujunhuan
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-11-30
收藏
得分:0 
明白,谢谢!
2006-12-31 18:53
快速回复:[求助] 函数调用问题
数据加载中...
 
   



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

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