一道c语言题目,在线等

#include<stdio.h>intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);/有没有这句话对结果有什么影响/re... #include<stdio.h>
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))); }
展开
 我来答
dreamflying21
2012-06-28 · TA获得超过232个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:242万
展开全部
有没有printf语句对个变量的值是没有影响的,最多影响输出的结果。
在没有这个printf语句的时候,输出为15
而在有这个printf语句的时候,输出为61515(它包含了三次输出,分别是6,15,15)
函数调用发生在fun(a+fun(d)):
第一次调用fun(d)时,参数为1,调用后:static d=6,返回6
第二次调用fun(a+6)是时,参数为9,调用后:static d=15,返回15
八神97坤
2012-06-28 · TA获得超过169个赞
知道答主
回答量:101
采纳率:0%
帮助的人:68.4万
展开全部
其实没什么影响,这句只是让你知道最后一次调用该函数时,静态局部变量d的值,没什么影响,还有就是你的全局变量和局部变量同名了,这点你要注意一下!
追问
但是实际运行的时候,去掉那句话,输出值为15;加上那句话,输出值为61515。这是怎么回事?
追答
你把它改成这样就不会出现这个问题了:printf("%d   ",d)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友de9bc71
2012-06-28
知道答主
回答量:70
采纳率:0%
帮助的人:17.6万
展开全部
没有影响,那个只是一个输出显示的函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听海的声音qwe
2012-06-28 · TA获得超过291个赞
知道小有建树答主
回答量:467
采纳率:100%
帮助的人:307万
展开全部
肯定有影响 多输出两个数了
我说的是屏幕显示有影响 最终结果是没影响的
追问
屏幕只会显示最终的返回值,因为fun函数只在printf中出现,没有单独作为语句出现
追答
大哥你要输出fun(表达式)   程序会调用fun啊
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式