首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于是否一个函数内声明的局部变量能被另一个函数访问的,该如何解决

2012-05-03 
关于是否一个函数内声明的局部变量能被另一个函数访问的我在一本书里面看到以上说明他给出的代码是他是gcc

关于是否一个函数内声明的局部变量能被另一个函数访问的
我在一本书里面看到以上说明他给出的代码是

他是gcc的
int main()
{
a();
b();

}
void a()
{
int arr[10];
int i;
for(i=0;i<10;i++)
{
arr[i]=i;

}
}
void b()
{
int arr[10];
int i;
for(i=0;i<10;i++)
{

printf("%d",arr[i]);//能够打印出 123456789
}

}

可是我通过vc++6.0却不能得到以上结果。

#include <stdio.h>
void a();
void b();
void main()
{
a();
b();

}
void a()
{
int arr[10];
int i;
for(i=0;i<10;i++)
{
arr[i]=i;

}
}
void b()
{
int arr[10];
int i;
for(i=0;i<10;i++)
{

printf("%d",arr[i]);
}

}

[解决办法]
见鬼了,我用VC2010编译竟然真输出0123456789!!!!
而且做了如下改动测试:

C/C++ code
void a(){    int arr[10];    int i;    for(i=0;i<10;i++)    {        arr[i]=0;           //  如果改成直接是0,就输出的0000000000    }}void b(){    int arr2[10]; // 变量名字特意改成不是arr了,结果还是输出0123456789    int i;    for(i=0;i<10;i++)    {        printf("%d", arr2[i]);    }} 

热点排行