C++ 文字的大小(以字节为单位)
我负责这个问题,老实说,我不知道如何找到这些字节的大小。有人能给我指出正确的方向吗?一种方法是使用sizeof操作符 比如说,C++ 文字的大小(以字节为单位),c++,visual-c++,byte,literals,C++,Visual C++,Byte,Literals,我负责这个问题,老实说,我不知道如何找到这些字节的大小。有人能给我指出正确的方向吗?一种方法是使用sizeof操作符 比如说, What is the size (in bytes) for each of the literals '7', 7.0, “7”? #包括 #包括 int main(int argc,字符**argv) { std::cout为了教你如何钓鱼,而不是给你一条鱼,让我们将其分为两部分。首先,我们如何找到这些文本的类型,是解决这个问题的最佳方法: #include &
What is the size (in bytes) for each of the literals '7', 7.0, “7”?
#包括
#包括
int main(int argc,字符**argv)
{
std::cout为了教你如何钓鱼,而不是给你一条鱼,让我们将其分为两部分。首先,我们如何找到这些文本的类型,是解决这个问题的最佳方法:
#include <iostream>
#include <math.h>
int main(int argc, char **argv)
{
std::cout << "size of char 6 is " << sizeof('6') << std::endl;
std::cout << "size of float 6.0 is " << sizeof(6.0) << std::endl;
std::cout << "size of string 6 is " << sizeof("6") << std::endl;
return 0;
}
在visualstudio
中,您将直接获得类型()
如果我们必须这样做,我们将使用并看到:
c
d
A2_c
现在我们了解了类型,我们可以使用以下方法找到它们的大小:
迂腐地说,一般情况下,文字本身没有物理大小。将“字节大小”的概念应用于非“材料”的内容(即不驻留在内存中)毫无意义。这里唯一的例外是字符串文字“7”
,这是一个左值。同时,'7'
和7.0
不是左值
无论如何,当您将sizeof
应用于一个文本值(如果这是您所说的“字节大小”)时,该文本被解释为一个简单的表达式。您得到的是该表达式的类型大小。因此,'7'
具有typechar
和size 1,7.0
具有typedouble
和sizesizeof(双精度)
(取决于实现),“7”
具有类型常量字符[2]
和大小2
(请注意,数组到指针的转换不应用于sizeof
的直接操作数,这就是为什么sizeof“7”
的计算结果是数组大小,而不是指针大小。)要计算字节数,您需要确定每个字节的类型。列出了3种不同的类型。请注意,第二种类型可能会有所不同。浮动文字是双精度的,除非它们有后缀。decltype
可能比typeid
更好。此外,您也可以(显然知道)只需使用sizeof
@Rapptz中的文字,它们是探索的工具,对于那些刚刚意识到这一点的人来说,仅仅说使用sizeof
并没有给他们太多的帮助。当然,要真正理解它,最好转到标准部分2.14文字
,并从那里开始。
c
d
A2_c
char
double
char [2]
#include <typeinfo>
#include <iostream>
int main()
{
std::cout << sizeof( char) << std::endl ;
std::cout << sizeof( double ) << std::endl ;
std::cout << sizeof( char [2] ) << std::endl ;
}
1
8
2