C++ 64位系统上 long长度为什么是4字节

img

img


如图,devc++指针变量是8字节,为什么long是4字节,应该是8字节吧?

C/C++标准只规定了int类型至少占16位,long类型至少占32位,long long类型至少占64位。
至于这些类型具体占多少位是由操作系统的Data Model决定的。比如64位Windows系统采用LLP64 Data Model(即intlong都是32位),而64位Linux系统则采用LP64 Data Model(即int是32位,long是64位)
https://en.cppreference.com/w/cpp/language/types#Data_models

long和int等价,long long才是8字节

c++里面int比较尴尬
它不像c#里,short=2byte,int=4byte,long=8byte
在32位机器里,int=short=2byte
在64位机器里,int=long=4byte

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632