C++。为什么 std::cout << char + int 打印 int 值?

2024-01-05

比方说,我们有:

char x = 'a';
int y = 1;

所以,如果你运行:

std::cout << x + y;

它打印 98 而不是 'b'。正如我所见here http://www.cplusplus.com/reference/ostream/ostream/operator%3C%3C/ <<operator只有int参数实现。

从现在开始我有两个问题:

  1. After 字符+整数操作返回什么类型?
  2. 为什么没有char参数实现,但是std::cout << x仍然按预期工作并打印char value?

谢谢Fefux /users/7131047/, 博佩尔松 /users/597607/ and 马蒂·维克库宁 /users/227267/答案是:

  1. From CPPReference:隐式转换 http://en.cppreference.com/w/cpp/language/implicit_conversion:

    算术运算符不接受小于以下的类型int作为 参数和积分促销将在之后自动应用 左值到右值的转换(如果适用)。

    所以返回类型为x + y is int.

  2. std::cout has a operator<<(char) as a 非会员 http://www.cplusplus.com/reference/ostream/ostream/operator-free/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++。为什么 std::cout << char + int 打印 int 值? 的相关文章

  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 从 eventbridge api 目标调用 AWS Lambda 函数 URL

    我正在利用 Eventbridge API Destination 调用 lambda 函数的 url 并将其限制到我想要的速率 当 lambda 函数的 invoke url auth 类型设置为 None 时 此方法有效 当我将函数 U
  • 如何根据数据类型在 python 中设置条件?

    这个问题看似简单 但我却想不出来 我知道你可以在 python 中检查数据类型 但是如何根据数据类型设置条件呢 例如 如果我必须编写一段代码来对字典 列表进行排序并将所有整数相加 那么如何隔离搜索以仅查找整数 我想一个简单的例子看起来像这样
  • “ ./bin/spark-shell ” 无法在 ubuntu 14.04 上使用带有 Hadoop 2.6+ 的 Spark 1.6 预构建版本

    在 Ubuntu 14 04 上新下载了带有 Hadoop 2 6 的 Spark 1 6 预构建版本到桌面上 我导航到 Spark shell 并按照下面给出的链接启动 Spark快速启动 Spark 链接 http spark apac
  • 如何通过selenium和python点击smtebook中嵌入的youtube视频的播放按钮

    我想点击 youtube 播放https smtebooks us downfile 13192 building serverless python web services zappa pdf https smtebooks us do
  • 给定一个整数数组,找到线性时间和常量空间中第一个缺失的正整数

    换句话说 找到数组中不存在的最小正整数 该数组也可以包含重复项和负数 这个问题是 Stripe 在编程采访中提出的 我设计了一个解决方案 如下所示 include
  • 用javascript解析算术表达式

    有没有一种简单的方法 用javascript来转换以下表达式 e a b c d 变成类似的东西 multiply e add multiply a add b c d 表达式将存储在字符串中 我愿意接受任何可以避免我编写自己的解析器的解决
  • 如何在 .NET 中以编程方式重新启动 Windows 服务

    如何在 NET 中以编程方式重新启动 Windows 服务 另外 我需要在服务重启完成后做一个操作 本文 http www csharp examples net restart windows service 使用ServiceContr
  • spring hibernate.createSQLQuery 作为自定义实体返回

    我在做Query query hibernate createSQLQuery select abc def from table 是否可以将结果自动 解析 到 POJO 列表 这样我就可以这样做 List
  • 下载 Laravel 时 Composer 非常慢

    你能帮我吗 我想通过以下方式安装 Laravelcomposer create project laravel laravel进入cms目录 但 Composer 下载它非常非常慢 你能帮我看看如何增强它吗 这是我的终端 saidalo S
  • Bootstrap Datetimepicker设置日期

    我正在使用一个日期时间选择器 http eonasdan github io bootstrap datetimepicker 来自 Eonasdan 到目前为止效果很好 我有一个像这样的 HTML 元素 div div 并使用 datet
  • Win32 (GDI) - 设置静态控件的不透明度

    我正在使用 C 无 MFC 或 GDI 我想要的是将子窗口的不透明度设置为 100 我的子窗口是STATIC控制 我想知道这是否可能 如果可以 有人可以指出我如何做到这一点的正确方向 这是我的设置 我创建我的父窗口如下 HWND hWnd
  • 有没有办法在远程主机上运行 Selenium 测试?

    我想运行以下设置 on host 1 执行一些 Selenium 测试 on host 2 运行火狐浏览器 On host 1将有一个 Jenkins 实例运行测试并且host 2将是一个运行在上面的 Docker 容器host 1 并且
  • 折叠卡打开然后立即再次关闭

    我读过以前的帖子 讨论了导航栏和菜单的这个问题 但它似乎并不适用 我有一个非常简单的例子 两张卡 一张默认打开 另一张折叠 当我尝试按卡 2 按钮展开第二张卡时 它会打开 但随后立即再次关闭 我不确定我做错了什么 这里的例子 div div
  • PHP:反洪水/垃圾邮件系统

    我实际上正在开发一个 PHP 项目 该项目将具有用户系统 登录 注册 将丢失的密码发送到电子邮件 我认为这可能非常容易受到暴力攻击和 或垃圾邮件 发送某人电子邮件的密码 例如 1000 次等 请使用您的幻想 当今的网络服务器 Apache
  • HtmlAgilityPack 获取页面标题和 H1 标签

    嘿 我正在尝试通过执行以下操作从网页获取页面标题和 H1 标签 doc LoadHtml htmlSourceCode txtTitle Text doc GetElementsByTagName title InnerText txtH1
  • IExpando 是什么以及它在哪里使用?

    我正在使用反射器浏览 mscorlib 中的类型 就像你一样 并遇到了IExpando接口 http msdn microsoft com en us library system runtime interopservices expan
  • Swift:在 switch 语句中测试类类型

    在 Swift 中 您可以使用 is 检查对象的类类型 如何将其合并到 开关 块中 我认为这是不可能的 所以我想知道解决这个问题的最佳方法是什么 你绝对可以使用is in a switch堵塞 请参阅 Swift 编程语言中的 Any 和
  • 我应该定义默认构造函数吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 所以我们正在进行一些同行评审 这个小小的分歧出现了 即使默认构造函数什么也不做 是否应该定义它 还是应该让编译器定义它 到目前为止 双方都无法拿
  • 如何实现GMail中聊天窗口的弹出功能?

    我并不是在寻找完整的实施 我更感兴趣的是他们是如何做到的 我知道他们使用 GWT 但我想要一个更底层的答案 天真地 我会首先想到当您单击弹出链接时 他们只是打开一个新窗口并将内容复制到其中 有很多原因导致效果不佳 所以我想知道是否有人知道或
  • C++。为什么 std::cout << char + int 打印 int 值?

    比方说 我们有 char x a int y 1 所以 如果你运行 std cout lt lt x y 它打印 98 而不是 b 正如我所见here http www cplusplus com reference ostream ost