读书人

关于是否一个函数内声明的局部变量能被

发布时间: 2012-05-03 14:06:56 作者: rapoo

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

他是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]);    }} 

读书人网 >C语言

热点推荐