2013-09-24 28 views
-4

C996.5.3 Unary operators多少元运算符在C语言

Syntax 
1 unary-expression: 
postfix-expression 
++ unary-expression 
-- unary-expression 
unary-operator cast-expression 
sizeof unary-expression 
sizeof (type-name) 
unary-operator: one of 
& * + - ~ ! 

这是说一元,运营商的&之一,*+-~!,所以我认为++--sizeof不是一个单一的运营商,是吗?

+0

42?.................. –

+1

'sizeof'运算符只有一个表达式,所以它肯定是一元的。对于其他所有运算符都是一样的,“一元”意味着它需要一个操作数,“二进制”需要两个操作数。 –

+0

来自[维基百科关于“一元”](http://en.wikipedia.org/wiki/Unary_operation):“在数学中,一元操作是只有一个操作数的操作,即单个输入。”在编程中也是如此。 –

回答

3

在语言学上,unary-operator: one of & * + - ~ !表示它们是一元运算符,但不一定是唯一的一元运算符。如果用数学解释这个短语,人们可能会认为他们是唯一的一元运算符。

本章的标题是“一元运算符”,表示第一种解释是正确的。 ++,--,casts和sizeof也是一元运算符。

+0

但是在msdn中http://msdn.microsoft.com/en-us/library/y0c1cfax.aspx。它不说演员也是一元操作员? – airalert

+0

是由Microsoft或标准定义的语言吗? MS页面并不完全严格。 在那个页面上,它说有三种类型的运算符,一元,二元和三元。然而,在http://msdn.microsoft.com/en-us/library/fyy30xyk.aspx上他们说演员也是演员。演员有一个操作数,因此按照定义它们是一元操作数。 –