关于C++中sizeof()的问题

doublews[3]={10000.0,2000.0,30000.0};double*pw=ws;为什么sizeof(ws)得到的结果是24,sizeof(pw)得到的... double ws[3] = {10000.0,2000.0,30000.0};
double * pw = ws;
为什么sizeof(ws)得到的结果是24,sizeof(pw)得到的结果是4
展开
 我来答
tunpishuang
2013-03-20 · TA获得超过233个赞
知道小有建树答主
回答量:348
采纳率:100%
帮助的人:89.7万
展开全部
sizeof(x)的含义是x所占的字节数量。
ws是一个double数组包含了三个元素 类型是double []。每个double占8字节。8x3=24。所以sizeof(ws)返回24。
而pw是的类型是double*是指向ws的一个指针。指针的大小是4个字节。所以sizeof(pw)=4。
网易云信
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同... 点击进入详情页
本回答由网易云信提供
bingjingjiexue
2013-03-20
知道答主
回答量:13
采纳率:0%
帮助的人:7万
展开全部
以32位机为例
sizeof(double) = 8
ws[3]为包含3个double类型的元素的数组 所以是 sizeof(double)*3 = 24
sizeof(double *) = 4
pw 为double *型的指针,存储的是ws数组的首地址 所以sizeof(pw)=4

请注意学习指针那块。
追问
什么是32位机呢?  系统?  我的系统是64位的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cooke1234
2013-03-20 · TA获得超过6861个赞
知道大有可为答主
回答量:4617
采纳率:72%
帮助的人:3607万
展开全部
double * 是指针,在你的机器上指针的大小是4字节。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郑州条码收款机
2013-03-20 · TA获得超过1581个赞
知道小有建树答主
回答量:1633
采纳率:0%
帮助的人:924万
展开全部
一个是数组,一个是指针地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaonan9523
2013-03-20
知道答主
回答量:1
采纳率:0%
帮助的人:1522
展开全部
因为pw是一个指针,所有的指针的长度都是4,而sizeof(ws),指的是ws[3]所占的所有空间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式