深秋的落叶
ARM && Linux kernel

今天在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;
}

posted on 2008-09-03 11:08  刘伟_luvi  阅读(536)  评论(1编辑  收藏  举报