You need to enable JavaScript to run this app. C++中cout操作符处理int与字符串相加的行为疑问
优惠活动
大模型
产品
解决方案
定价
更多

C++中cout操作符处理int与字符串相加的行为疑问

输出结果原因解释

  • 代码中的"Hello World"是C风格字符串字面量,本质为const char*类型的指针,指向字符串首个字符'H'的内存地址。
  • C/C++中指针与整数做加法时,会按指针指向类型的长度计算偏移量:char类型长度为1字节,因此3 + "Hello World"等价于将原指针向后偏移3个char长度,指向原字符串索引为3的位置(索引从0开始计数)。
  • 原字符串的索引与字符对应关系如下:
    索引01234567891011
    字符Hello空格World\0
  • cout输出const char*类型变量时,会从指针指向的位置开始逐个输出字符,直到遇到字符串结束符'\0'才停止,因此从索引3的'l'开始输出,最终得到llo World的结果。

额外提示:如果偏移量超出了字符串的总长度,会触发未定义行为,可能出现乱码、程序崩溃等异常情况。

内容的提问来源于stack exchange,提问作者Madhav Oberoi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 03:06:03