gpt4 book ai didi

c++ - ("hello"+ 1) VS ( *"hello") + 1 VS (* ("hello"+ 1)) 之间的差异

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:08 28 4
gpt4 key购买 nike

我一直在分配以下作业来解释 3 个语句中发生的事情,但我无法弄清楚。

cout << ("hello" + 1);    // ello
cout << (*"hello") + 1; // 105
cout << (*("hello" + 1)); // e
  1. 为什么数字 2 是数字而不是字符?
  2. 第一个仍然有零字符吗? (结束字符串)

最佳答案

  1. *"hello" 给出字符串的第一个字符,'h',类型为 char,具有 ASCII 值104. 整数提升规则是指,当添加charint时,char被转换为int,给出 int 类型的结果。输出 int 给出数值。

  2. 是的。字符串文字是一个以零字符结尾的数组。将其地址加一会得到指向数组第二个字符的指针;数组的其余部分没有变化,因此末尾仍然包含零。

关于c++ - ("hello"+ 1) VS ( *"hello") + 1 VS (* ("hello"+ 1)) 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25539426/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com