(int) + 4*5;
为什么这(adding a type with a value)是可能的?(try 使用g++和GCC.)
我知道这没有意义(也没有效果),但我想知道为什么这是可能的.
(int) + 4*5;
为什么这(adding a type with a value)是可能的?(try 使用g++和GCC.)
我知道这没有意义(也没有效果),但我想知道为什么这是可能的.
这里的+
是unary +
operator,不是binary addition operator.这里没有添加任何内容.
此外,语法(int)
用于类型转换.
你可以把这句话重读为
(int) (+ 4) * 5;
它被解析为
((int) (+ 4)) * (5);
上面写着,
4
应用一元+
运算符.int
5
相乘这类似于(int) (- 4) * (5);
,其中一元运算符的用法更为常见.
在你的例子中,一元+
和转换为int
都是多余的.