13 个可见字符加 C 字符串结尾的空字符,共占 14 个字节。
OJ: noi_openjudge
题目 ID: ch0102-10
难度:入门
标签:字符串类型转换python
日期: 2026-07-30 23:01
题意
输出 C/C++ 字符串字面量 "Hello, World!" 的 sizeof 结果。
思路
可见字符串长度是 13,但 C 风格字符串还会在结尾存放一个 \\0 作为结束标记。因此字面量数组共有 char,输出 14。
Python 字符串不以 C 的空字符结尾,len("Hello, World!") 只会得到 13;本题的目标是 C/C++ 的 sizeof 结论,Python 程序输出固定答案。
代码
Python代码
python
# "Hello, World!" 有 13 个可见字符,C 字符串字面量还含结尾的 '\\0'。
print(14)C++代码
这里保留原有的 C++ 参考实现。
cpp
#include <cstdio>
int main(){
int a = sizeof("Hello, World!");
printf("%d",a);
return 0;
}复杂度
时间复杂度和额外空间复杂度均为
总结
sizeof 字符串字面量会计算末尾 \\0,而 strlen 和 Python 的 len 只统计可见字符。