永发信息网

函数返回值

答案:3  悬赏:10  手机版
解决时间 2021-03-09 10:31
#include
void num()
{extern int x,y;
int a=15,b=10;
x=a-b;
y=a+b;
}
int x,y;
main()
{
int a=7,b=5;
x=a+b;
y=a-b;
num();
printf("%d,%d\n",x,y);
}输出结果是5,25。。。。。麻烦讲解下。num函数中也无返回值呀?
最佳答案
看到num函数中的extern了吗,还有你的函数中xy是定义在main函数之外的,这叫全局变量,在整个函数中起作用(除特殊情况,如一个函数中有相同的变量,那么全局变量就被局部变量代替了),extern的作用是避免那种特殊情况的发生,是函数中的变量xy和全局变量重复,这样函数就有了处理全局变量的能力,否则去掉extern,num函数就没用了,全局变量的生命周期是和整个文件一样的,所以,我建议你参考一下 作用域 的知识,这样你会明白一点

还有就是你的main函数中没有生命xy变量,默认的xy还是全局变量的,你在main函数中定义一下试试,结果就是12,2了
全部回答
int x, y;这一句是在函数外面的,也就是说 x 和 y 是两个全局变量,在任何一个函数里都可以用,当然也可以修改了。 函数num()的这一句[extern int x,y;]的意思是说: x ,y 是在外面定义的。这里并没有定义变量。
返回值的概念就是你所调用的函数返回给你的值。函数可以有返回值 ,也可以没有返回值 。 例如:当你调用了一个函数时,比如说void fun(int n,int m);前面的void就说明这个函数是没返回值的。只要在前面出现了一个void就是没有返回值的。 再者,当你调用了函数,比如int fun(int m);时,前面的int 就是返回值的类型,也就是说这个函数执行以后要返回一个整型数。。额。。。就是这样的吧。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问,为什么放不出技能,我好不容易练了个7级
2016是建国以来第几十周年
东吴健身馆我想知道这个在什么地方
网络教育大专毕业证能考二级建造师不
风水两边邻居家房屋都我家朝前一些我家在中间
淘宝网上治鼻炎的啥药最好?
看图猜电视剧一个男的骑自行车是什么电视剧四
为什么我录制好的视频是完全的黑屏视频
新余市公安局良山分局地址在哪,我要去那里办
梦幻西游蚩尤武决现在大约要多少钱啊
胸腹式呼吸和腹式呼吸在呼吸上的区别有什么
李健对李宇春的评价
中国十大匪城都有那些城市啊
倩女幽魂手游战龙怎么玩 拉车跑商玩法介绍
根据国际货币基金组织对金融危机的分类,主要
推荐资讯
想在网上买玉器,不知道哪家比较好,求推荐?
请问,大奖还是骗术????,我在玩的时候收到
怎么办,给小狗剪毛剪掉破了一块肉,严重吗?
周嘉镇交通安全办公室这个地址在什么地方,我
请问周杰伦的头发咋烫出来的啊?
已知坐标平面内OA=(1,5),OB=(7,1),OM=(1,2),P
迷你世界怎么让狼繁殖
JF ROYAL TEA HOUSE皇家英式下午茶地址在哪,
朋友对我乎热乎冷,是怎么回事,没把我当朋友
中国第一大屯叫什么名字
美图v4映客直播相机禁用怎么设置
谁能帮我翻译一下这句话?“亲耕籍田,以供粢
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?