首页 > 为什么指针变量 的sizeof()打印出来的都是 4;

为什么指针变量 的sizeof()打印出来的都是 4;

# include <iostream>

using namespace std;

int main(void)
{
    char c[] = {'h','e','l','l','0','\0'};
    char* a = c;
    cout << sizeof(a);
    return 0;
}

以前听人讲过一点,比如在这里a指向的都是第一个字节的地址,但是为什么打印出来的是4,还是有点懵,来个人好好讲讲撒。


如楼上有说,指针就像门牌号,不管是指向多么大面积的房子,门牌号都是4位。


32位下指针是4字节,64位下是8字节。
4字节最多能表示4G。

指针就像门牌号,无论是大别墅也好,小店面也好,在门牌号上并看不出区别。
它代表的仅仅是一个地址,跟地址的内容无关


指针保存的是一个地址,而不是其他的任何数据。。。所以大小都是固定的


指针所占字节数跟处理器位数有关系,32位处理器就是4个字节,虽然你可能是64位处理器,但要看你是否是64位程序,所以只要int是4个字节,那指针就还是4个字节


指针所指向的是地址,作为32位的机子,那么地址是4*8=32位的,也就是32位机子下的指针大小为4;
若作为64位机子,那么地址是8*8=64位,也就是64位机子下面指针大小为8;

【热门文章】
【热门文章】