You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中单目+、-运算符运行结果异常原因咨询

单目正号运算符的运行逻辑说明

你出现误解的核心原因是混淆了单目运算符和双目运算符的定义,这段代码里的+不是做加法的双目运算符,是仅对单个操作数生效的单目正号运算符,具体运行逻辑如下:

  • 逐行解析代码执行过程:
    1. 初始化语句int x=9执行完成后,变量x的初始值为9
    2. 执行x=-x时,-为单目负号运算符,作用是对操作数取反,运算得到结果-9,赋值给x后x的值更新为-9,第一次输出结果为-9
    3. 执行x=+x时,+为单目正号运算符,C/C++规范中明确规定单目正号运算符不会修改操作数的符号和数值,仅返回操作数本身的值,所以对当前值为-9的x执行+x运算,得到的结果仍然是-9,赋值给x后x的取值没有变化,第二次输出自然还是-9

补充说明:单目正号是和单目负号对应设计的运算符,本身没有对数值做符号修正的作用,既不会把负数转为正数,也不会在输出时额外添加正号标识,你如果执行cout << +(-9);得到的输出结果同样是-9,和直接输出-9没有区别。

内容的提问来源于stack exchange,提问作者John Mellow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:06:06