int 的指针 其实是long数据,存储一个int变量地址。
也就是询问的是地址空间的大小,int地址 分配是按long分配的也就是
运行程序
# include <
stdio.h>
main (){
int b=1;
int *a;
a=&b;
printf("b = %4d\n ",b); // int 变量b的值
printf("sizof(b) = %4d\n ",sizeof(b)); // int 变量b的值占用内存空间,单位字节
printf("&b = %4d\n ",&b); // int 变量b的地址值
printf("sizof(&b) = %4d\n ",sizeof(&b));// int 变量b的地址占用内存空间,单位字节
printf("\n ");
printf(" a = %4d\n ",a); // int 指针的值(int型变量地址)
printf("sizof(a ) = %4d\n ",sizeof(a)); // int 指针的值(int型变量地址)占用内存空间,单位字节
printf("*a = %4d\n ",*a); // int 指针的指向值(int型变量值)
printf("sizof(*a) = %4d\n ",sizeof(*a));// int 指针的指向值(int型变量值)占用内存空间,单位字节
printf("&a = %4d\n ",&a); // int 指针的地址值
printf("sizof(&a) = %4d\n ",sizeof(&a));// int 指针的地址占用内存空间,单位字节
getch();
}
b = 1
sizof(b) = 2
&b = 4044
sizof(&b)=4
a =4044
sizof(a) = 4
*a =1
sizof(*a) = 2
&a =4046
sizof(&a) = 4
你所问的是:指向int型的指针占的内存空间多大?
也就是: sizof(a) = 4 ,long型存int型地址空间大小。