标题:[求助] 函数调用问题
只看楼主
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-113432-1-1.html




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

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