#include <stdio.h>
#include <stdlib.h>
void print(char *arr[],int len)
{
for(int i=0;i<len;i++) //输出各字符串
printf("%d %s/n", (int)arr[i], arr[i]);
}
int main()
{
int i = 0;
int a[7][8][9];
int b[9] = {1,2,3,4,5,6,7,8,9};
int (*p)[9]; //声明了一个指针,指向有9个int型的元素的数组
int *q[9]; //声明了一个数组,数组包含9个int型指针
char *pn[]={"Fred","Barney","Wilma","Betty"};
int num=sizeof(pn)/sizeof(char *);
print(pn,num);
p = &b;
for (; i < 9; i++)
{
printf("%d %d ", (*p)[i], *(*p +i));
}
printf("/n");
printf("the sizeof is %d of a/n", sizeof(a));
//printf("the sizeof is %d of &a/n", sizeof(&a)); //&a is invalid
printf("the sizeof is %d of (10,2)[a]/n", sizeof((10,2)[a]));
printf("the sizeof is %d of a[0]/n", sizeof(a[0]));
printf("the sizeof is %d of a[0][0]/n", sizeof(a[0][0]));
printf("the sizeof is %d of a[0][0][0]/n", sizeof(a[0][0][0]));
//printf("the sizeof is %d of &a[0][0][0]/n", sizeof(&a[0][0][0])); //&a[0][0][0] is invalid
printf("the sizeof is %d of (*p)/n", sizeof((*p)));
printf("the sizeof is %d of b/n", sizeof(b));
printf("the sizeof is %d of p/n", sizeof(p));
printf("the sizeof is %d of (*p)[0]/n", sizeof((*p)[0]));
printf("the sizeof is %d of p[0]/n", sizeof(p[0]));
printf("the sizeof is %d of (*p)[1]/n", sizeof((*p)[1]));
printf("the sizeof is %d of (*p)[10]/n", sizeof((*p)[10]));
printf("the sizeof is %d of (*p)[0]/n", sizeof((*p)[0]));
printf("the sizeof is %d of *q/n", sizeof(*q));
printf("the sizeof is %d of pn/n", sizeof(pn));
printf("the sizeof is %d of q/n", sizeof(q));
printf("the sizeof is %d of q[0]/n", sizeof(q[0]));
printf("the sizeof is %d of q[1]/n", sizeof(q[1]));
printf("the sizeof is %d of q[10]/n", sizeof(q[10]));
printf("the sizeof is %d of *q[0]/n", sizeof(*q[0]));
system("pause");
return 0;
}
同时请参照飞天御剑流的CSDN的pointer and array文章