注意数组名取地址!
#include <stdio.h>
int main(int argc, const char *argv[])
{
int nArray[] = {1, 2, 3, 4, 5};
int (*pTemp)[5] = &nArray;
printf("%p %p\n",*pTemp, &pTemp);
printf("%p %p\n", nArray, &nArray);
int *p = nArray;
while(p != (int *)(&nArray + 1))
{
printf("%d\n", *p++);
}
p = (int *)pTemp;
while(p != (int *)(pTemp + 1))
{
printf("%d\n", *p++);
}
printf("%p %p\n", pTemp + 1, &nArray + 1);
return 0;
}
输出结果
为