为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C C++
largeQ 2022-05-12 18:11:04
为什么我在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个字节的。
查看完整描述

2 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

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

查看完整回答
反对 回复 2022-05-15
?
POPMUISE

TA贡献1765条经验 获得超5个赞

cout<<&a<<endl<<&b<<endl<<&c<<endl<<&d<<endl;
改为再试试
cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;
&a, 是地址 sizeof(&a)=4

查看完整回答
反对 回复 2022-05-15
  • 2 回答
  • 0 关注
  • 224 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信