数组传递
C语言的数组名传递到子函数后,子函数的形参接收到的是数组的起始地址,不能把数组的长度传递给子函数
void print(int a[]) { //a:0x61fe00
int i;
// 指针的大小是8个字节(64位)
for (i=0;i<sizeof (a)/sizeof(int);i++)
{
// 所以只打印了a[0],a[1]
printf("%d\n",a[i]);
}
}
C语言的数组名传递到子函数后,子函数的形参接收到的是数组的起始地址,不能把数组的长度传递给子函数
void print(int a[]) { //a:0x61fe00
int i;
// 指针的大小是8个字节(64位)
for (i=0;i<sizeof (a)/sizeof(int);i++)
{
// 所以只打印了a[0],a[1]
printf("%d\n",a[i]);
}
}
int arr[5]={1,2,3,4,5};
int j=20,i=10;
arr[5]=6; // 访问越界
arr[6]=7; // 访问越界
printf("i=%d\n",i); //i变成了7
