全部问题 > 当前问题

void空类型无返回值,且a=3,b=4仅作用于void fun2函数中,所以我觉得后两个应该输出全局变量的值呀


蔡倩倩 2016-1-24 19:45:01

共 3 个回答

嘿嘿大人 2016-1-24 20:42:20

在fun2中a和b就是全局变量,所以全局变量的值被覆盖为了a=3,b=4,所以主函数输出的a和b就是全局变量呗覆盖之后的值

最佳答案

J.Taohard 2016-1-24 22:14:06

调用呀!函数调用呀!函数fun2()是什么意思,意思就是“a=3;b=3;”呀!C语言由上而下的运行程序,前面都是主函数中运用到的函数的说明。遇到了“fun2()”就跳转到

void fun2()

{ a=3; b=4; }

运行。

如果fun2()中不是{a=3,b=4}而是这样{ }一个空函数,别的什么赋值式,没有a、b啥事时,你的就想对了。


蔡倩倩 2016-1-28 17:18:09

回复 嘿嘿大人:噢噢好的!

问题来自: 形参和实参
有以下程序:
#include <stdio.h>
int a=1,b=2;
void fun1(int a, int b)
{ printf("%d%d",a,b); }
void fun2()
{ a=3; b=4; }
main()
{ fun1(5,6); fun2();
  printf("%d%d\n",a,b);
}
程序运行后的输出结果是 ______ 。
A. 1256
B. 5634
C. 5612
D. 3456
答案:B
解析:fun1输出的是形参a、b,所以输出56;fun2赋值的是全局变量a、b,在一个源文件中,全局变量被“屏蔽”,所以最后输出34。连在一起是5634。因此选B。