- 论坛徽章:
- 0
|
C中数组参数的地址和数组参数的第一个元素的地址竟然不一样.但是事实就是如此.----------<<c专家编程>;>;.
#include<stdio.h>;
char ga[]="abcdefghijklm";
void my_array_func(char ca[10])
{
printf("addr of array parm=%#x \n",&ca);
printf("addr of (ca[0]) =%#x \n",&(ca[0]));
printf("addr of (ca[1]) =%#x \n",&(ca[1]));
printf(" ++ca = %#x \n\n",++ca);
}
void my_pointer_func(char *pa)
{
printf("addr of ptr parm=%#x\n",&pa);
printf("addr of (pa[0]) =%#x \n",&(pa[0]));
printf("addr of (pa[1]) =%#x \n",&(pa[1]));
printf(" ++pa = %#x \n\n",++pa);
}
void main()
{ printf("addr of global array =%#x\n",&ga);
printf("addr of (ga[0]) =%#x \n",&(ga[0]));
printf("addr of (ga[1]) =%#x \n",&(ga[1]));
my_array_func(ga) ;
my_pointer_func(ga);
} |
|