标题:[求助]有一道关于"static"程序题的输出结果我想不明白
只看楼主
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
得分:0 
可是答案为什么是6,15,15?怎么会有3个?
2006-08-22 22:40
编程新贵
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2006-8-11
得分:0 
int d=1;
fun(int p)
{ static int d=5;
d+=p;
printf("%d ",d);
return(d);
}
main()
{ int a=3; printf(\%d \n",fun(a+fun(d))); }


1,fun(a+fun(d))
最里面的fun(d)=p+d=1+5=6      显示d=6,返回d=6,
2,fun(9)=p+d=9+6=15 因为是静态变量 d的值被覆盖为6
                        显示15,返回15
所以是6,15才对
                       
2006-08-23 01:32
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
得分:0 
printf(...fun(a + fun(d)));

fun(d) ----------------> printf 1 =====> 6
fun(a+fun(d) ----------> printf 2 =====> 15
printf(...fun(a+fun(d)));printf 3 =====> 15

前兩個由 fun 函數中的 printf 列印
後一個由 main 函數中的 printf 列印

原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-08-23 02:14
横眉冷对
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2005-3-3
得分:0 

楼上正解!


MSN:jyycom@ 爱好:军事,体育,Rock。
2006-08-23 10:39



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




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

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