Ern*_*dar 83 c c++ casting language-lawyer
(int) + 4*5;
Run Code Online (Sandbox Code Playgroud)
为什么这样做(添加带有值的类型)是可能的?(尝试使用g ++和gcc。)
我知道这没有任何意义(也没有影响),但是我想知道为什么这是可能的。
Sou*_*osh 137
在+这里是一元的+运营商,而不是二进制加法运算。这里没有其他事件发生。
另外,语法(int)用于类型转换。
您可以将该语句重新阅读为
(int) (+ 4) * 5;
Run Code Online (Sandbox Code Playgroud)
解析为
((int) (+ 4)) * (5);
Run Code Online (Sandbox Code Playgroud)
其中说,
+符应用于整数常量值4。int5这类似于(int) (- 4) * (5);,其中对一元运算符的用法更为熟悉。
对于您而言,一元+和强制转换int-都是多余的。