今天在VC6中测试一下数组的传址方式,发现在main函数中,数组名所指向的地址是与数组中每0个元素的地址相同,但当把数组传给被调函数时,被调函数的形参是以指针的形式接收实参的地址。
在下边的程序中,当你第一次运行的时候,看系统分配给array数组的地址是什么,然后更改程序;
2:把 printf("4:\t1245044==%s\n", 1245044);语句中的后边一个“1245044”更改为你的系统给你的array分配的地址,然后再运行一下看看。
1:把//#define DEBUG改为#define DEBUG
#include <stdio.h>
#include <string.h>
//#define DEBUG
int ArrayAddress(char caArray[])
{
printf("2:\t&caArray==%d\tcaArray==%d\n", &caArray, caArray);
return 0;
}
int main(void)
{
char array[10]="Hello";
printf("1:\t&array==%d\tarray==%d\n", &array, array);
ArrayAddress(array);
printf("3:\t&array==%d\tarray==%d\n", &array, array);
#ifdef DEBUG
printf("4:\t1245044==%s\n", 1245044);
#endif
return 0;
}