|
|
无数的教科书都几乎没有严肃认真的面对这个问题。数组名就一定代表指向数组第一个元素的指针吗?猜猜下面的代码输出是怎么样的:
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> charga[]="abcdefghijklm";

 voidmy_array_func(charca[10]) {
printf("addressofarrayparam=%#x\n",&ca);
printf("addressofca[0]=%#x\n",&ca[0]);
printf("addressofca[1]=%#x\n",&ca[1]);
printf("++ca=%#x\n\n",++ca);
}

 voidmy_pointer_func(char*pa) {
printf("addressofptrparam=%#x\n",&pa);
printf("addressofpa[0]=%#x\n",&pa[0]);
printf("addressofpa[1]=%#x\n",&pa[1]);
printf("++pa=%#x\n\n",++pa);
}

intmain()
  {
printf("addressofglobalarray=%#x\n",&ga);
printf("addressofga[0]=%#x\n",&ga[0]);
printf("addressofga[1]=%#x\n\n",&ga[1]);
my_array_func(ga);
my_pointer_func(ga);

system("PAUSE");
return0;
} |
|