C语言中有多少个一元运算符

C语言中有多少个一元运算符,c,C,在C99中,6.5.3一元运算符: Syntax 1 unary-expression: postfix-expression ++ unary-expression -- unary-expression unary-operator cast-expression sizeof unary-expression sizeof ( type-name ) unary-operator: one of & * + - ~ ! 这表示一元运算符是&,*,+,-,~,中的一个,所以我认为+

C99
中,
6.5.3一元运算符

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
不是一元运算符,是吗?

从语言学的角度来看,短语
一元运算符是&*+-~
表示它们是一元运算符,但不一定是唯一的一元运算符。如果用数学方法来解释这个短语,人们可能会认为它们是唯一的一元运算符


本章标题为“一元运算符”,表明第一种解释是正确的
++
--
、强制转换和
sizeof
也是一元运算符。

42?……
sizeof
运算符只接受一个表达式,因此它肯定是一元运算符。与其他所有运算符相同,“一元”表示它接受一个操作数,“二元”表示它接受两个操作数。“在数学中,一元运算是一个只有一个操作数的运算,即一个输入。”这在编程中是相同的,但在msdn中是一样的。它并没有说cast也是一元运算符?该语言是由Microsoft定义的还是由标准定义的?MS页面并不完全严格。在那一页上,它说有三种类型的运算符,一元运算符,二元运算符和三元运算符。然而,在这方面,他们说cast也是操作符。强制转换只有一个操作数,因此根据定义,它们是一元的。