为什么内存中显示用了四个字节存储的?求各位大神帮忙答疑解惑!

为什么我在C++中定义的几个short类型的变量在内存中不是两个字节的,而是四个字节存储的?(声明:我的平台中short类型的确是占用2个字节的)例如:#include <iostream>using namespace std;int main(){ short a,b,c,d; cout<<&a<<endl<<&b<<endl<<&c<<endl<<&d<<endl; return 0;}
运行结果为:

而且我用sizeof函数获取short的字节个数,结果显示为2的,例如:
#include <iostream>using namespace std;int main(){ int i=sizeof(short); cout<<i<<endl; return 0;}
说明我的平台(即编辑器或者环境等)中short类型的确是占用2个字节的。



largeQ
浏览 226回答 2
2回答

侃侃无极

C++中的变量是在其长度比int的长度短时是以int的长度为基准“ 对齐”的。所以别说是short,就是char,你声明4个后相邻也要差4个字节,不信你试试……

POPMUISE

cout<<&a<<endl<<&b<<endl<<&c<<endl<<&d<<endl;改为再试试cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;&a, 是地址 sizeof(&a)=4
打开App,查看更多内容
随时随地看视频慕课网APP