gpt4 book ai didi

c++ - 三元表达式的类型

转载 作者:IT老高 更新时间:2023-10-28 12:41:33 26 4
gpt4 key购买 nike

谁能解释以下程序的输出:

#include <iostream>
using namespace std;

int main()
{
int test = 0;
cout << "First character " << '1' << endl;
cout << "Second character " << (test ? 3 : '1') << endl;

return 0;
}

输出:
第一个字符 1
第二个字符 49

但是两个 printf 语句应该打印同一行。

最佳答案

表达式的类型'1'char .

表达式的类型(test ? 3 : '1')至少是 int (或其未签名版本;可移植为 std::common_type_t<int, char> )。

因此两次调用 <<运算符选择不同的重载:前者按原样打印字符,后者将整数格式化为其十进制字符串表示。 (字符 '1' 的整数值由您的基本字符集定义。)

关于c++ - 三元表达式的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30018841/

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