C语言操作符学习自我总结

这几天学习了C语言的操作符,今天在博客中做一下自我学习的总结。

首先是操作符的分类:

算数操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符,关系操作符,逻辑操作符,条件操作符,,逗号表达式,下表引用、函数调用以及结构成员。

算数操作符:

包括 +  -    *   /   %

1.除了%操作符之外,其他的几个操作符可以用于整数和浮点数。

2.对于/操作符如果两个操作符都是整数,执行整数除法,而只要有浮点数执行的就是浮点数除法。

3.%操作符的两个操作数必须是整数。返回的是整除之后的余数。

移位操作符

<< 左移操作符   

>> 右移操作符

左移操作符规则:左边抛弃,右边补零。

右移操作符规则:

分为两种。1.逻辑移位 左边用0填充,右边直接丢弃

                   2.算数移位 左边用该值的符号位填充,右边丢弃

位操作符

&   // 按位与

|     // 按位或

^     //按位异或

他们的操作数必须为整数

赋值操作符

=

复合赋值符

+=   -=  *=  /=  %=    >>=    <<=    &=    |=   ^=  

单目操作符

!         逻辑反操作

-            负值

+           正值

&           取地址

sizeof   操作数的类型长度(以字节为单位)

~           对一个数的二进制按位取反

 --          前置、后置 --

++         前置、后置++

 *           间接访问操作符(解引用操作符)

(类型)    强制类型转换

关系操作符

>      >=   <     <=    !=(用于判断 不相等)     ==(用于判断 相等)

逻辑操作符

&&  逻辑与       ||      逻辑或

条件操作符

exp1 ?  exp2  :   exp3

先求解表达式1,

若其值为真(非0)则将表达式2的值作为整个表达式的取值,

否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。

 逗号表达式

exp1,exp2,exp3,.... expN

逗号表达式,就是用逗号隔开的多个表达式。逗号表达式,从左向右依次执行。整个表达式的结果是最后的一个表达式的结果

下标引用、函数调用和结构成员

1.[]  下标引用操作符

操作数: 一个数组名+一个索引值

2.()函数调用操作符 接受一个或者多个操作数:第一个操作数是函数名,剩下的操作数就是传递给函数的参数。

3.访问一个结构的成员

.结构体.成员名

->结构体指针 ->成员名

表达式求值

表达式求值的顺序一部分是由操作符的优先级和结合行决定。

同样,有些表达式的操作数再求值的过程中可能需要转换为其他类型。

隐式类型转换

c的整型算数UN算总是至少以去缺省整型类型的精度来进行的。

为了获得这个精度,表达式中的字符和短整型操作数再使用之前被转换为普通整型,这种转换称为整形提升。

算数转换

如果某给个操作符的各个操作数属于不同的类型,那么除非其中一个操作数的转换为另一个操作数的类型,否则操作就无法进行。

操作符的属性

复杂表达式的求值又三个影响的因素。

1.操作符的优先级

2.操作符的结合性

3.是否控制求值顺序

总结:这里列出的是操作符的一些基本概要,没有上具体的代码操作,我们所写出的表达式如果不能通过操作符确定唯一的具体计算路径,那么就是表达式存在问题。

猜你喜欢

转载自blog.csdn.net/lin140611/article/details/88978190