指针为什么是4个字节?

指针为什么是4个字节?,第1张

这个和你机器硬件和 *** 作系统的寻址空间有关系。如果在64位机器和 *** 作系统上面,指针是64位(8字节)。当然你也可以在64位 *** 作系统上面用32位兼容模式,那样就是4字节了。

TC是模拟的老的16位环境,所以是16位的。你的linux是32位,int就是32位。int的大小和具体的C编译器的实现有关系。可以是16,32,或者64位。你可以看看C语言的书里面有讲。不是固定大小的。

如果你想使用固定大小的整数类型,可以使用int32_t, 是一种扩展,在头文件pstdint.h里面可以找到。(不是C语言的标准,但实际中经常使用,很方便)。

是的。

malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。

我的理解是变量是有类型的, 不同类型的变量所占的存储空间不同.

例如64位linux 下每个char 占一个字节, 每个int 占4个字节,

对于一个int 型的指针变量来说, 指针变量加1, 意味着指针指向下一个变量, 指针对应的内存地址实际是加4.

对于char型的指针变量来说, 指针变量加1和地址加1, 没什么区别.


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/6271944.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存