注册 登录
编程论坛 C++教室

sizeof的问题?

newyj 发布于 2008-05-28 11:55, 763 次点击
char *p = "hello world";
cout<< sizeof(p) << endl;     //为4个字节

sizeof(p)得到的是一个指针变量的字节数 是什么意思,为什么是4个字节?
8 回复
#2
sunkaidong2008-05-28 11:59
即使是指向char的指针自身也是int型的
#3
newyj2008-05-28 12:27
谢谢了
那是不是 所有的指针都是4个字节啊
#4
sunkaidong2008-05-28 12:39
#include <cstdio>
#include <typeinfo.h >
void main()
{    int a=0;
    int *p=&a;
    printf("%s\n",typeid(p).name());
    printf("%d",sizeof(p));
    
}
#5
newyj2008-05-28 12:56
谢谢 举的例子
但是不知道 为什么 指针都是int型的(4个字节)
还有就是不知道 cstdio typeinfo 头文件都有什么用处?
有没有 介绍 C++头文件的 书 (除了MSDN外)
#6
sunkaidong2008-05-28 13:06
指针存放的都是地址你算下..可以达到4G左右..内存的空间是2个G基本能达到内存任何位置
#7
newyj2008-05-28 13:16
不好意思  不懂
#8
flyue2008-05-28 18:31
应该说在32位程序中,指针的size为32位(每字节为8位,共4字节)
#9
笨小孩62008-05-29 21:25
指针都是4个字节,因为指针本身也是一个数,只不过是表示地址的数而已,4个字节的数足以表示所有的地址空间。
1