为什么答案是D?

解释说fun1()里的a和b是局部变量,fun2()里的a和b是全局变量,所以我不懂int a=1,b=2这语句是什么?

#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) 5 6 1 2

B) 3 4 5 6

C) 1 2 5 6

D) 5 6 3 4


 

慕粉3847971
浏览 1555回答 3
3回答

慕前端1463173

int a=1,b=2; 声明了两个变量a被赋值为1,b被赋值为2.这两个变量是全局变量,具有文件作用域。fun1()这个函数的变量a,b时重新声明的,与第二行的a,b可以说没有任何联系,即在做fun1()函数定义时,括号里面可以是(int c, int d),结果一样。fun2()这个函数的作用就是永久的修改了变量a,b的值。

噼喱啪啦

int  a=1,b=2;定义在主函数外,代表全局变量,定义完在主函数内一直保存值,结束前不释放内存。 函数的形式参数可以改符号,别被混淆了。 void  fun (int a,int b) 和 void fun (int x, int y)是一样的。
打开App,查看更多内容
随时随地看视频慕课网APP