用C++的sizeof编写一个程序求各种数据类型的存储长度!

用C++的sizeof编写一个程序求各种数据类型的存储长度!,第1张

sizeof(x)实际是计算string的类对象的大小。

string的实现实际内部成员就慎脊只有一个指针,所有的字符串空间都是通过分配后挂在这个指针上(通过析构函数完成对内存的释放)。

所以无论你输入什么,sizeof(x)的结果值永远是一个指针的大小值,在32位 *** 作系统上,都是4字节。

注信孝肢意:sizeof *** 作是个编译期 *** 作符,不是一个动态运行的函数。

即:假如你在32位 *** 作系统编译sizeof(int)。那么它的值是4个字节。

如果这个程序编译滑世的可执行文件(没有在64位 *** 作系统重新编译)到64位 *** 作系统可以运行。那么这个值依然是4字节。会在编译程序的时候,用4替换所有sizeof(int)的代码。

!!!!!!!!!sizeof是编译时就决定的结果,所以这个题的这种思路其实并不正确。(通过输入来通过sizeof得到类型的宽度,无论怎么改,只要是sizeof得到的只是编译时的类型宽度)

#include<卜告stdio.h>

int main()

{

printf("sizeof(int)=%d\n", sizeof(int))

printf("世弊闷sizeof(float)=%d\n", sizeof(float))

printf("sizeof(double)=%d\n", sizeof(double))

printf("sizeof(char)=%d\n", sizeof(char))

//依次为  4   4  8  1

 搜弯   return 1    

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8264961.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存