一个数组访问问题
本人在测试一个简单c程序时,发现了一个问题,望大虾们指教程序1
#include<stdio.h>
int *re1(int data[10]);
int main()
{
int i;
int data[10];
int *p=re1(data);//不同的进程在不同的页面中运行
for(i=0;i<10;i++)//同一进程中,分配给数组是一个连续的区域
{
printf("%d %d %d\n",i,p[i],data[i]);
}
return 0;
}
int *re1(int data[10])
{
int i;
for(i=0;i<10;i++)
{
scanf("%d",&data[i]);
}
return data;
}
程序2
#include<stdio.h>
int *re1();
int main()
{
int i;
int data[10];
int *p=re1();//不同的进程在不同的页面中运行
for(i=0;i<10;i++)//同一进程中,分配给数组是一个连续的区域
{
printf("%d %d\n",i,p[i]);
}
return 0;
}
int *re1()
{
int i;
int data[10];
for(i=0;i<10;i++)
{
scanf("%d",&data[i]);
}
return data;
}
程序1得出的是我输入的数据,程序2得出只在第一个是我输入的数据,其他则不是,这是为什么呢?难道说不同进程之间的访问指针只能正确访问第一个数据吗?希望大家能给我一个满意的解释