4

c中是否有既是一元又是二元的运算符?这个问题是在一次采访中被问到的。

4

3 回答 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中没有一元和二元运算符。
符号, +,和-,用作一元和二元运算符,但这些符号被视为不同的运算符*&

  1. +-一元:i = -1 j = +1。二进制:i = i+1,j = j+1
  2. * 一元:取消引用运算符。二进制:乘法运算符。
  3. & 一元:引用运算符。二进制:按位AND运算符。
于 2014-06-03T23:16:53.477 回答