365禁用取消提款什么意思

c++ - 一个字符串占用多少字节?一个字符?

c++ - 一个字符串占用多少字节?一个字符?

9 回答 9

This answer is useful

34

#include

int main()

{

std::cout << sizeof 'n' << std::endl; // 1

std::cout << sizeof "n" << std::endl; // 2

std::cout << sizeof '\n' << std::endl; // 1

std::cout << sizeof "\n" << std::endl; // 2

std::cout << sizeof "\\n" << std::endl; // 3

std::cout << sizeof "" << std::endl; // 1

}

单引号表示字符,双引号表示带有不可见 NUL 终止符的 C 样式字符串。

\n(换行符)只是一个字符,\\(反斜杠)也是如此。\\n只是一个反斜杠,后跟 n。

于 2012-02-21T20:13:58.140 回答

This answer is useful

10

'n': 不是字符串,是文字 char,一个字节,字母 n 的字符代码。

"n": 字符串,两个字节,一个用于 n,一个用于每个字符串末尾的空字符。

"\n":两个字节作为 \n 代表“新行”,它占用一个字节,加上一个字节用于空字符。

'\n':与第一个相同,文字字符,不是字符串,一个字节。

"\\n": 三个字节.. 一个用于 , 一个用于换行符和空字符

"": 一个字节,只是空字符。

于 2012-02-21T20:22:45.483 回答

This answer is useful

6

根据char定义, A 占用一个字节。

文字使用'的是 char 文字;使用的文字"是字符串文字。

字符串文字是隐式以空值结尾的,因此它将比文字中可观察到的字符数多占用一个字节。

\是转义字符并且\n是换行符。

把这些放在一起,你应该能够弄清楚。

于 2012-02-21T20:15:06.910 回答

This answer is useful

5

以下将在内存中占用 x 个连续字符:

'n' - 1 char (type char)

"n" - 2 chars (above plus zero character) (type const char[2])

'\n' - 1 char

"\n" - 2 chars

"\\n" - 3 chars ('\', 'n', and zero)

"" - 1 char

编辑:格式固定

edit2:我写了一些非常愚蠢的东西,感谢 Mooing Duck 指出这一点。

于 2012-02-21T20:17:32.160 回答

This answer is useful

2

字符串占用的字节数等于字符串中的字符数加 1(终止符)乘以每个字符的字节数。每个字符的字节数可以变化。char常规类型为 1 个字节。

你所有的例子都是一个字符长,除了倒数第二个是两个,最后一个是零。(有些是类型char,只定义一个字符。)

于 2012-02-21T20:14:15.120 回答

This answer is useful

1

'n' - 0x6e

"n" - 0x6e00

'\n' - 0x0a

"\n" - 0x0a00

"\\n" - 0x5c6e00

"" - 0x00

于 2012-02-21T20:16:22.337 回答

This answer is useful

1

您似乎指的是字符串常量。并将它们与字符常量区分开来。

Achar在所有架构上都是一个字节。字符常量使用单引号分隔符'。

字符串是一个连续的字符序列,带有一个尾随 NUL 字符,用于标识字符串的结尾。字符串使用双引号字符 '"'。

此外,您还介绍了使用黑斜线表示特殊字符的 C 字符串常量表达式语法。 \n是字符串常量中的一个字符。

因此对于示例'n', "n", '\n', "\n":

'n'一个字符

"n"是一个字符的字符串,但它需要存储两个字符(一个用于字母n,一个用于 NUL

'\n'是一个字符,换行符(基于 ASCII 的系统上的 ctrl-J)

"\n"是一个字符加上一个 NUL。

我让其他人根据这些来解谜。

于 2012-02-21T20:19:30.037 回答

This answer is useful

1

'n'-> 一char。Achar始终为 1 个字节。这不是一个字符串。

"n"-> 一个字符串文字,包含一个n和一个终止 NULL char。所以2个字节。

'\n'-> One char, Achar总是 1 个字节。这不是一个字符串。

"\n"-> 一个字符串文字,包含一个\n和一个终止 NULL char。所以2个字节。

"\\n"-> 一个字符串文字,包含一个\、一个 '\n' 和一个终止 NULL char。所以3个字节。

""-> 一个字符串文字,包含一个终止 NULL char。所以1个字节。

于 2012-02-21T20:19:41.603 回答

This answer is useful

0

可能晚了10年。但是如果你只使用“Hello”,它只是一个字符数组,所以这将占用的字节数是这个字符数组的字符数(在这种情况下为 5)+ 1(一个 NULL 字符),这将是6 在这种情况下。因此,您可以采用以下规则:对于 c_strings(char 数组):字符数 + 1

您还可以使用“include”和在 std::string = "Your text here"; 之后访问 c++ 字符串。

此 c++ 字符串始终具有固定大小(在我的机器上为 28 字节)。

于 2021-06-22T16:56:35.237 回答