1、对于指针数组
char *A[3];
long *B[3];
那么它们占的空间是多大?答案当然是4*3=12个字节啰,其实以前没怎么思考这些问题,
因为在计算机系统里面指针占用4个字节的大小。当然是不管你多少个字节。
附:对于 char **C[3],其存储的空间还是4*3=12,因为指针的指针也是指针啊,,,,!!!!
只是其存储内容不一样啊,它存放的是指针的地址,而指针存放的是变量的地址。、
2、 也许有人问关于,既然都是指针,里面存放的都是你所指的变量或者对象的地址,那为什么
不同类型的指针不能混用,
也就如下:
int a;
double b;
int *ptr1=&a;
double *ptr2=&b;
为什么ptr2指针不可以指向 变量a,这就是编译器的问题了,因为你需要时确告诉编译器,当你用ptr1访问变量时,
也指明了你所指的类型是int型 ,于是编译器就会按照int的存储方式去解释那个地址,如果是int型,那么它是4个
字节,如果是double,那么它是8个字节,于是知。也就是给编译器的编译提供一种指示。