如下:
#include <stdio.h> int main(void) { int * p[10]; printf("%ld %ld\n", sizeof(p),sizeof(int * [10])); //我这里打印出来40(32位系统)告诉我们这应该是一个数组类型 return 1; }
#include <stdio.h> int main(void) { int * p[10]; int a = 0; int b; int c; //这里的p[0]就是a的地址,取*之后就是a的值 p[0] = &a; *p[0] = 2; printf("%ld %ld\n", sizeof(p),sizeof(int * [10])); printf("%d\n",a); return 1; }
#include <stdio.h> int main(void) { int (*p)[10]; printf("%ld %ld\n",sizeof(p),sizeof(int (*)[10]));//打印出来4,4告诉我们这应该是一个指针类型 printf("%ld %ld\n",sizeof(*p),sizeof(int [10]));//代表*p是一个指针,指向一个数组类型的指针,指向10整形类型的数组 int a[10]={1}; int b[10]={1}; p = &a; //指向整个数组 int * q = b; //指向首元素的指针 printf("%p\n", a); printf("%p\n", &a); return 0; }
原文地址:http://blog.csdn.net/u012516914/article/details/43614685