c中是否有既是一元又是二元的运算符?这个问题是在一次采访中被问到的。
问问题
6243 次
3 回答
10
星号 (*) 可用于取消引用(一元)或乘法(二元)。
与号 (&) 可用于引用(一元)或按位与(二进制)。
加号/减号 (+/-) 可用于标识/否定(一元)或加/减(二进制)。
但是,正如其他人指出的那样,这些是不同运营商共享的符号。这些运算符中的每一个都只有一个 n-arity。
于 2014-06-03T22:53:40.423 回答
7
不,没有。每个运算符都是一元、二元或三元。
一些一元和二元运算符碰巧使用相同的符号:
*
用于取消引用和乘法-
用于否定和减法+
身份和加法&
对于地址和按位“和”
但是一元和二元*
仍然是不同的运算符,恰好拼写相同。
于 2014-06-04T00:12:50.353 回答
2
我认为只有.
运算符在 C 中既是一元又是二元(标准中未指定):
.
:- 一元:在结构的指示符{.meber1 = x, .member3 = z}
中- (C99 和更高版本)。二进制:访问结构成员。
C中没有一元和二元运算符。
符号, +
,和-
,用作一元和二元运算符,但这些符号被视为不同的运算符: *
&
+
,-
一元:i = -1
j = +1
。二进制:i = i+1
,j = j+1
*
一元:取消引用运算符。二进制:乘法运算符。&
一元:引用运算符。二进制:按位AND
运算符。
于 2014-06-03T23:16:53.477 回答