第1个回答 2013-03-09
指针存的是一个地址,在32位操作系统里面,最大寻址空间位0~2^32-1,即4个字节(32位)就可以表示,相应的在64位操作系统环境中用8个字节表示指针。指针本身所占空间大小与所指对象所占空间大小无关,只与操作系统能够有关。
第2个回答 2013-03-10
如果想知道变量长度直接这样就可以了,不管什么数据的指针长度都是一样的,在32位系统里都是4字节,16位系统2字节,64位系统理是8字节.
# include<stdio.h>
void main(void)
{
printf("%d %d %d\n",sizeof(int),sizeof(double),sizeof(char));
}
在vc6++上输出的因该是 4 8 1
TC2.0编译输出的是 2 8 1
第3个回答 2013-03-09
指针是一个储存数据在内存中的地址的地方。他不是原数据,而是指向原数据。p是指针类型的数据,*p才是int型数据。
第4个回答 2013-03-09
p,q,r都是指针,所以是4.
printf("%d %d %d\n",sizeof(*p), sizeof(*q), sizeof(*r));
这才是你要的结果。