C语言的部分总结之操作符
一门语言的学习,首先我们应该了解其中的各种操作符。对于C语言而言,其常见的操作符包括:算数操作符、位操作符、移位操作符、赋值操作符、单目操作符、关系操作符、条件操作符、逗号操作符、下表引用、函数调用和结构成员。
接下来,我将为小伙伴们依次分析以上的各种C语言操作符:
1.算数操作符:(+ ,- ,* ,/ ,% )
1.)% 操作符左右俩边必须为整数,不能为浮点数;
2.)/ 操作符进行计算时,结果随左右俩边的数据类型的变化而变化,若左右俩边数据类型均为int 类型,则计算结果必定为整型;若左右俩边至少有一边为fload类型,则计算结果必定为浮点型;
3.)+ 、-、* 运算符进行计算时无特别之处,在此就不进行分析。2.移位操作符:<< , >>
1.)<< 操作符为左移操作符,每进行一次移位,左边丢弃,右边补0;
2.)>> 操作符为右移操作符,右移可以分为算术右移and逻辑右移,算数右移:每进行一次移位,左边补位移之前的符号位,右边丢弃;逻辑右移:每进行一次移位,左边补0,右边丢弃。
注:移位操作符是针对二进制位,是对整数的操作,浮点数不能进行唯一操作。
3.位操作符:& , | , ^
1.)& 操作符为按位与,有0出0,全1出1;
2.)| 操作符为按位或,有1出1,全0出0;
3.)^ 操作符为按位异或,相同出0,相异出1.
注:位操作符是针对二进制数的操作,必须为整数。
4.赋值操作符:=
1.)= 操作符为赋值操作符,可以进行对一个变量进行复制,也可以对一个变量进行初始化;
2.)= 操作符是可以连续使用的,从右向左执行(不建议使用)。
5.复合赋值号:+= , -= ,*= ,/= ,%= ,>>= , <<= ,&= , |= ,^=
1.)+= 操作符:a+=b相当于a=a+b;
2.)-= 操作符: a-=b相当于a=a-b;
3.)*= 操作符:a*=b 相当于a=a*b;
4.)/= 操作符:a/=b 相当于a=a/b;
5.)%= 操作符:a%=b相当于a=a%b;
6.)>>= 操作符:a>>=b相当于a=a>>b;
7.)<<= 操作符:a<<=b相当于a=a<<=b;
8.)&= 操作符:a&=b相当于a=a&b;
9.)|= 操作符:a|=b相当于a=a|b;
10.)^= 操作符:a|=b相当于a=a^b.
6.单目操作符:!, - ,+ ,&,sizeof ,~,-- ,++ ,* ,(类型)
1.)!操作符为逻辑取反操作(真变假,假变真);
2.)- 负号 +正号
3.)& 取地址(注:从内存中取地址,不能从寄存器register中取址。)
4.)sizeof 求操作符的类型长度(以字节为单位),a 为int类型变量时,sizeof(a)和sizeof a 与sizeof (int)的值相当,都为int类型的类型长度;a 为数组时,sizeof(a)表示求整个数组的长度,sizeof(&a)表示求数组中一个 元素的长度;特别注意,sizeof(b=a+
5.)中内部放的表达式不参与运算(b=a+5在编译期间已执行,那时变量a还未进行内存的开辟);
6.) ~ 操作符为按位取反(针对一个数的二进制);
7.) ++与-- 前置表示先执行后使用,++与-- 后置表示先使用后执行;
8.)* 此处的操作符为解引用操作符(间接访问操作符);
9.) (类型)操作符为强制类型转换。
7.关系操作符:> , >= ,< , <= ,!= (不等于), ==
注:关系操作符较为简单,此处不作解释,有一点特别注意:==等于 与 =赋值,二者比较容易混淆。
-
逻辑操作符: && ,||
1.) &&操作符为逻辑与,假1为假,全真为真;
2.) ||操作符为逻辑或,真1为真,全假为假。
注:逻辑与、逻辑或和按位与、按位或的区别。
-
条件操作符(三目操作符):exp1?exp2:exp3
注:先计算exp1的值,若exp1为真,整个表达式的值为表达式2(exp2)的值;若exp1为假,整个表达式的值为表达式3(exp3)的值。
-
下标引用、函数调用和结构成员:[] ,() ,struct
1.) [] 操作符:一个数组名+一个索引值。(例如:a[1],数组a的第二个元素)
2.) () 函数调用操作符:接受一个或多个操作符(第一个操作符就是函数名,其余的操作数是传给函数的参数);
3. struct 操作数 ,进行一个生动的比喻,struct类型相当于盖房子的图纸,之后的变量相当于盖好的房子(访问一个结构的成员:结构体.结构成员)。
-
逗号表达式:exp1,exp2,exp3,…,expN
注:从左往右依次执行,整个表达式的结果是最后一个表达式的结果。
以上是C语言中的常用操作符,在此门语言中,还应该注意表达式求值(其顺序一部分是由操作符的优先级和结合性决定,其过程中有些需要进行类型转换)与复杂表达式的影响因素(操作符的优先级、操作符的结合性、求值顺序)。
本次关于c语言的操作符总结就在此结束了,希望小伙伴们喜欢!