永发信息网

函数返回值

答案:3  悬赏:10  手机版
解决时间 2021-03-09 10:31
  • 提问者网友:世勋超人
  • 2021-03-08 21:02
#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函数中也无返回值呀?
最佳答案
  • 五星知识达人网友:未来江山和你
  • 2021-03-08 22:35
看到num函数中的extern了吗,还有你的函数中xy是定义在main函数之外的,这叫全局变量,在整个函数中起作用(除特殊情况,如一个函数中有相同的变量,那么全局变量就被局部变量代替了),extern的作用是避免那种特殊情况的发生,是函数中的变量xy和全局变量重复,这样函数就有了处理全局变量的能力,否则去掉extern,num函数就没用了,全局变量的生命周期是和整个文件一样的,所以,我建议你参考一下 作用域 的知识,这样你会明白一点

还有就是你的main函数中没有生命xy变量,默认的xy还是全局变量的,你在main函数中定义一下试试,结果就是12,2了
全部回答
  • 1楼网友:夜风逐马
  • 2021-03-09 01:04
int x, y;这一句是在函数外面的,也就是说 x 和 y 是两个全局变量,在任何一个函数里都可以用,当然也可以修改了。 函数num()的这一句[extern int x,y;]的意思是说: x ,y 是在外面定义的。这里并没有定义变量。
  • 2楼网友:玩家
  • 2021-03-09 00:02
返回值的概念就是你所调用的函数返回给你的值。函数可以有返回值 ,也可以没有返回值 。 例如:当你调用了一个函数时,比如说void fun(int n,int m);前面的void就说明这个函数是没返回值的。只要在前面出现了一个void就是没有返回值的。 再者,当你调用了函数,比如int fun(int m);时,前面的int 就是返回值的类型,也就是说这个函数执行以后要返回一个整型数。。额。。。就是这样的吧。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯