Hello, World!的大小

GitHub跳转原题关系图返回列表

13 个可见字符加 C 字符串结尾的空字符,共占 14 个字节。

OJ: noi_openjudge

题目 ID: ch0102-10

难度:入门

标签:字符串类型转换python

日期: 2026-07-30 23:01

题意

输出 C/C++ 字符串字面量 "Hello, World!"sizeof 结果。

思路

可见字符串长度是 13,但 C 风格字符串还会在结尾存放一个 \\0 作为结束标记。因此字面量数组共有 13+1=1413 + 1 = 14char,输出 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;
}

复杂度

时间复杂度和额外空间复杂度均为 O(1)O(1)

总结

sizeof 字符串字面量会计算末尾 \\0,而 strlen 和 Python 的 len 只统计可见字符。