sizeof测量数组的长度问题

发布于 2021-11-21 12:37:53 字数 198 浏览 849 评论 11

char *a =new char[3];

cout<<sizeof(a)<<sizeof(*a);这个输出的分别是4,1

然而 char a[3];

cout<<sizeof(a)<<sizeof(*a);输出的是3,1;

请问这个到底是为什么啊?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

累赘 2021-11-23 20:04:39

int len=sizeof(a) / sizeof(a[0]);

眉黛浅 2021-11-23 19:57:06

没呢,64位还没有真正的普遍,现在还是32位的最多

成熟稳重的好男人 2021-11-23 19:54:13

没呢,64位的还没有真正普遍,现在还是32位最多

青萝楚歌 2021-11-23 19:53:20

sizeof计算的的是占用栈空间的大小,这样理解是不是更准确些。

简单气质女生网名 2021-11-23 19:53:13

回复
和栈没毛关系,栈只是个存储方式而已。和实际存储区毛关系没有。 sizeof和实际存储空间大小有关系。哈。

时光清浅 2021-11-23 19:49:27

sizeof运算符是获取占用内存空间的大小。指针在32位机器中所占的内存大小永远是4个字节。

静谧 2021-11-23 18:52:38

sizeof运算符是获取占用内存空间的大小。指针在32位机器中所占的内存大小永远是4个字节。

醉生梦死 2021-11-23 18:26:26

根本原因还是C++的可读性,就这个例子看可读性为0,写好注释

少女情怀诗 2021-11-23 18:09:04

如果是char *a=new char[3];这么定义的,只通过变量a是无法获得数组大小的,只能用其他变量把定义时的长度保存起来。

醉酒的小男人 2021-11-23 16:30:40

a 是一个指针 sizeof(a) 计算的是指针大小

a 是一个数组 sizeof(a) 计算的是数组大小

本宫微胖 2021-11-23 15:08:28

a 是一个指针 sizeof(a) 计算的是指针大小

a 是一个数组 sizeof(a) 计算的是数组大小

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文