猿问

输出的结果为什么是57?

#include<stdio.h>
int a,b
void fun()
{
    a=100,b=200;
}
int main()
{
    int a=5,b=7;
    fun();
    printf("%d%d\n",a,b);
    return 0;
}


Joker4110332
浏览 1718回答 5
5回答

暝殇叶

#include<stdio.h> int a,b;  //这里定义了全局变量 void fun() {     a=100,b=200; } int main() {     int a=5,b=7;  //但是你在这里用重新生成了局部变量,会在方法里覆盖上面全局变量的内容,在这个方法结束后,才会消失     fun();     printf("%d%d\n",a,b);     return 0; }

望远

#include<stdio.h> int a,b//定义全局变量a,b void fun() {     a=100,b=200;//修改全局变量a,b的值 } int main() {     int a=5,b=7;//定义了局部变量a,b,全局变量被掩盖     fun();     printf("%d%d\n",a,b);//输出main函数的局部变量     return 0; }

奕吉啊

形参的值是不会传给实参的。 形参的存储单元是在函数调用是分配的,调用结束,形参的存储单元被释放。

Rommel_

你在main中定义了局部变量,去掉int就好

是梦境与我为邻0

函数中的a,b为局部变量,函数调用结束就没有了。
随时随地看视频慕课网APP
我要回答