’a+b‘为什么是打印b?

各位友友们,为什么这个是打印后面那个字符?char ch='a+b';打印b?

img

img

按理说根本不能编译

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    答案: 这是由于语法规则的影响。在C++中,单引号' '中只能包含一个字符,而a+b包含了两个字符,因此只会取最后一个字符'b'进行输出。

    如果想要输出a+b,可以使用字符串类型的变量。如下所示:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main() {
        string str = "a+b";
        cout << str << endl;
        return 0;
    }
    

    输出结果为:

    a+b
    

    另外,也可以使用字符数组来存储字符串,如下所示:

    #include <iostream>
    
    using namespace std;
    
    int main() {
        char str[] = "a+b";
        cout << str << endl;
        return 0;
    }
    

    输出结果为:

    a+b
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^