c++的常量

来源:百度知道 编辑:UC知道 时间:2024/06/04 20:23:48
常量32767与常量23所占用的存储空间一样大
这句话为什么是正确的,假如32767是整型,23是短整型,那存储的空间不就不一样了吗

在理论上说,的确可能存在短整型的常量。但在现实的程序中并不存在。
为什么会这样呢,因为对于CPU来说,只有一套整型的指令,不存在专门的短整型的指令,否则指令会增加一倍。所以短整型在内部是先转换成整型再进行处理的。
短整型常量在时间效率会很糟糕。而常量所需要占的空间非常少,一个程序就算有几百个常量,用短整型也节约不到1K的空间。所以编译程序不会产生短整型的常量。

因为整数的常量,在不指明使用那种类型的情况下,是默认用int的!

常量有隐藏类型,比如123是int型,123.0f是单精度型,123.0是双精度,0x123是十六进制。

既然是常量,所占空间不变,为什么还要分整形和短整形呢?

这两个数都没有超过65536,也就是说两个字节就足够了,用不着再多
分配空间。

多说两句:数据类型和所用机型有关,比如现在的电脑是64位,那么如果运行64位程序,整形数就是64位了,相应的32位16位的数据长度都不同。所以修改一下,这两个数占几个字节看具体情况。而短整形的是固定的2个字节。同时楼上的说法。