C++ cout怎样进行类型判断

int main(){
    char ch='d';
    cout << ++ch << endl;  #输出 e
    cout << ch + 1 << endl;#输出 103
    return 0;
}

如上怎样区分的数据类型?

阅读 3.7k
4 个回答

++chchar 自身运算
char + 1charint 运算,char 会提升为 int,然后和 int 一起运算
返回的类型自然也就一目了然了。
这叫类型提升

int main(){
    char ch = 'd';
    cout << typeid(++c).name() << endl;
    cout << typeid(c + 1).name() << endl;
    return 0;
}

第一个是对char类型进行++操作,返回值类型仍是char;第二个与1相加时c进行了类型转换,转换成int型后再与1相加,返回值是int类型。

ps:是ch啊,不是c啊

ch + 1等价于 char + int ,所以char先强转成int

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题