解释整数作为输入时的输出

 Zhangjingy2502870421 发布于 2022-12-04 02:01

- 当整数是输入时的explain输出

-why -47如果输入为5则递增该值

#include 
using namespace std;
int main() {

        string s;
        cin>>s;
        cout<<(*s.begin())-47;
    }
    return 0;
    }

Vlad from Mo.. 5

在ASCII字符2中有代码50.所以50 - 47将导致3.因此如果在语句中

   cin>>s;

你没死2

然后在声明中

    cout<<(*s.begin())-47;

由于整数提升而*s.begin()-47 等效的表达式'2' - 47被转换为类型int并且等于3('2' - 47 => 50 - 47 == 3).

考虑到该调用s.begin()返回迭代器,该迭代器指向字符串的第一个字符并*s.begin()产生字符本身.

1 个回答
  • 在ASCII字符2中有代码50.所以50 - 47将导致3.因此如果在语句中

       cin>>s;
    

    你没死2

    然后在声明中

        cout<<(*s.begin())-47;
    

    由于整数提升而*s.begin()-47 等效的表达式'2' - 47被转换为类型int并且等于3('2' - 47 => 50 - 47 == 3).

    考虑到该调用s.begin()返回迭代器,该迭代器指向字符串的第一个字符并*s.begin()产生字符本身.

    2022-12-11 02:14 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有