单目运算符有:1.逻辑非运算符【!】;2.按位取反运算符【~】;3.自增自减运算符【++, –】;4.负号运算符【-】;5.类型转换运算符【(类型)】;6.指针运算符和取地址运算符【*和&】;7.长度运算符【sizeof】。
一、介绍
单目运算符是指运算所需变量为一个的运算符,即在运算当中只有一个操作数,又叫一元运算符,其中有逻辑非运算符:!、按位取反运算符:~、自增自减运算符:++, –等。
例:5 + 6 和 5++ ——在C语言中,5++是非法的。
前者5 和 6为操作数+ 为运算符,但是 + 需要两个操作数,所以它不是一元运算符,而是二元运算符,而后者只需要一个操作数,所以 ++ 为一元运算符。
运算所需变量为两个的运算符叫做双目运算符,或者要求运算对象的个数是2的运算符称为双目运算符。
无值返回:void 在函数末尾写return ;
有值 :整型 实型 字符 字符串
单目:!(非) ++(自加) –(自减) &(求址) sizeof(类型字节大小) -(负) *(指针)
三目: a?b :c (如果a为真就返回b 如果为假就c)
二、其他运算符
C语言中,除了算数运算符,还提供以下运算符:
1、关系运算符
2、逻辑运算符
3、位运算符
4、赋值运算符
5、杂项运算符
运算符优先级:
C语言中,运算符的运算优先级共分为15 级。1 级较高,15 级最低。
在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。
运算符结合性:
C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。
如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。这种自左至右的结合 方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。
最典型的右结合 性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。
优先级从上到下依次递减,最上面具有较高的优先级,逗号操作符具有最低的优先级。
所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。其它的都是从左至右结合。
具有较高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。()是与函数相关,[]与数组相关,而->及.是取结构成员。
其次是单目运算符,所有的单目运算符具有相同的优先级,因此在我认为的 真正的运算符中它们具有较高的优先级,又由于它们都是从右至左结合的,因此*p++与*(p++)等效是毫无疑问的。
最后,推荐我们的管理工具给大家。