关于函数声明的程序
下面的函数没有声明怎么也可以啊 请给出该程序思路 谢谢#include<stdio.h>
//fun1();
//fun2();
int x;
int main()
{
printf("\n%d",x);
f1();
f1();
f2();
f1();
f2();
return 0;
}
f1()
{
int y=5;
y++;x++;
printf("\nx=%d,y=%d",x,y);
}
f2()
{
x--;
printf("\nx=%d",x);
}
----------------解决方案--------------------------------------------------------
没看明白,不过X是属于全局变量,但为什么没赋初值呢?是随机的吗?先上机试一下,然后再告诉你运行结果。
----------------解决方案--------------------------------------------------------
WIN-TC结果:
0
x=1,y=6
x=2,y=6
x=1
x=2,y=6
x=1
----------------解决方案--------------------------------------------------------
文件作用域的变量(不管是内部链接,还是外部链接)
都是静态存储类
未明确初始化的话,字节都设置为0
----------------解决方案--------------------------------------------------------
没有声明怎么会是对的?不知道lz用的什么编译器,我用的devc++,编译未通过!
----------------解决方案--------------------------------------------------------
#include<stdio.h>
//fun1();
//fun2();
int x;
f1()
{
int y=5;
y++;x++;
printf("\nx=%d,y=%d",::x,y);
}
f2()
{
::x--;
printf("\nx=%d",::x);
}
int main()
{
printf("\n%d",::x);
f1();
f1();
f2();
f1();
f2();
return 0;
}c++这样写问题就不模糊了
----------------解决方案--------------------------------------------------------
3#的结果是对的
这是关于变量存储的问题
#include<stdio.h>
//fun1();
//fun2();
int x; //[bc10] 未明确初时化,默认为0,x的作用开始处
int main()
{
printf("\n%d",x);
f1();
f1();
f2();
f1();
f2();
return 0;
}
f1()
{
int y=5; //[bc10] 每次调用此函数,y都被赋值为5,是auto类
y++;x++;
printf("\nx=%d,y=%d",x,y);
}
f2()
{
x--;
printf("\nx=%d",x);
}
----------------解决方案--------------------------------------------------------