一道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))); } 展开
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))); } 展开
4个回答
展开全部
其实没什么影响,这句只是让你知道最后一次调用该函数时,静态局部变量d的值,没什么影响,还有就是你的全局变量和局部变量同名了,这点你要注意一下!
追问
但是实际运行的时候,去掉那句话,输出值为15;加上那句话,输出值为61515。这是怎么回事?
追答
你把它改成这样就不会出现这个问题了:printf("%d ",d)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有影响,那个只是一个输出显示的函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
肯定有影响 多输出两个数了
我说的是屏幕显示有影响 最终结果是没影响的
我说的是屏幕显示有影响 最终结果是没影响的
追问
屏幕只会显示最终的返回值,因为fun函数只在printf中出现,没有单独作为语句出现
追答
大哥你要输出fun(表达式) 程序会调用fun啊
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询