1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 转义序列 转义说明 运算符及其优先顺序

转义序列 转义说明 运算符及其优先顺序

时间:2020-02-07 19:31:15

相关推荐

转义序列 转义说明 运算符及其优先顺序

目录

一、转义字符:

二、转义说明:

三、运算符以及优先顺序

1.算术运算符(+-*/%)

2.自增与自减运算符(++ - -)

3.sizeof运算符(sizeof)

4.类型转换运算符

5.关系运算符(< ≤ > ≥)与相等性运算符(== !=)

6.逻辑运算符(&& ||)

7.按位运算符(& | ^ << >> ~)

8.条件运算符 (?:)

9.赋值运算符(=)

10.总的优先顺序

一、转义字符:

二、转义说明:

三、运算符以及优先顺序

1.算术运算符(+-*/%)

+-:分为两种,一种是加减运算,一种是正负

加减运算是二元运算符(需要两个运算对象)从左向右结合正负是一元运算符(只需要一个运算对象即可)从右往左结合

/:乘除运算 都是二元运算符从左往右结合

*没什么好说的,/要注意,两个整数的除法,如果有小数部分,就会被丢弃(计算机不会四舍五入),这一过程叫做截断,所以计算5/9,该数值为0,要将其改为浮点数运算,即5.0/9

%:求模运算符 二元运算符从左往右结合

只能运用于整数之间的求余运算,不支持浮点数。

当运算对象中有负值时,运算结果符号值根据不同机器有不同实现,C99规定,求模符号之前的值是正的,那么运算结果就是正的,是负的,运算结果就是负的

eg:-11%-5=-1; 11%-5=1

💡优先级:+-(正负)> * / % > +-(加减)

2.自增与自减运算符(++ - -)

二者均可以作为前缀运算符(++a;- -a);也可以作为后缀运算符(a++;a- -);前缀后缀都起到同样的效果,就是将变量a的值增大(减小)1,不同的是二者本身的值,详细来说,就是++a是将a先增加1,然后使用a的值;而a++则是先使用a的值然后再使a增加1,那么后缀a++(- -)本身的值还是为加(减)1之前的值,而前缀++(- -)a本身的值是加完1后的值(也就是跟变量值相同);.

eg:q=2*++a; 先将a的值加1,然后再乘2,得到的值赋给q;

q=2*a++;:可以这么理解:将“a的值赋给a++”,然后a加上1,然后2乘上a++的值(也就是a加1之前的值),将乘积的值再赋给q。

💡优先级:()>++ - - > 算术运算符(不包括正负,正负与++ - -相同优先级)

3.sizeof运算符(sizeof)

sizeof以字节为单位,返回运算对象的大小

运算对象可以是变量,可以是类型(是类型的时候需要用圆括号括起来)

eg: sizeof a; sizeof (int);

💡优先级:与自增自减运算符同优先级

4.类型转换运算符

基本类型转换的规则: 涉及两种类型的运算时,两个值会分别转换两种类型的更高级别赋值表达式语句中,计算结果会被转换成赋值变量的类型当作为函数参数传递时,char 和short 会转换成int,float会转换成double(type):强制类型转换运算符,eg: (int)1.3;这样会使1.3转换成int型也就是1;

5.关系运算符(< ≤ > ≥)与相等性运算符(== !=)

结合顺序都是从左向右结合

💡优先级:算术运算符 >(< ≤ > ≥)> (== !=)

6.逻辑运算符(&& ||)

&&:并,必须同时满足两方条件才为真从左向右结合**|| :**或,只要满足一方条件就为真从左向右结合

💡优先级:算术运算符 >关系运算符 >相等性运算符 > && > ||

7.按位运算符(& | ^ << >> ~)

&:按位与运算符:从左向右结合

参与运算的两个运算对象,其二进制位相对应的只有两个都为1的时候,运算结果相对应的位才为1。

eg:3&10(00000011&00001010)=2(00000010) //只有第二位都是1,所以结果只有第二位是1.

这个运算符经常用来屏蔽某些二进制位,

eg: n=n&0177; //0177是八进制,对应二进制01111111,只有最低7位是1,高位都是0,所以做了这个运算以后,n的高位也会是0,最低7位还保持原样,这就屏蔽了n的二进制高位

还可以判断奇偶性

a&1=0, 偶数;a&1=1, 奇数。

|: 按位或运算符:从左向右结合

跟&概念相似,只不过是只要其中一个是1,结果相对应的位就是1,

eg: 9|5(00001001|00000101)=13(00001101)//第一位三位四位都为1

这个运算符可以使某些位变成1,而其他保持不变;

^:按异或运算符:从左向右结合

当两个操作数对应位不相同时,结果对应位为1;否则为0

eg:9^5(00001001^00000101)=12(00001100) //与按位或的区别在于将按位或,为1的情况有两种,只有该位置只有一个操作数为1,第二种情况是该位置两个操作数都为1。而按异或就只是第一种情况。

这个运算符可以使某些位取反,其他保持不变

<<: 左移运算符:从左向右结合

将位数左移,如x<<2; 将x的值左移2位,右边空出的两位用0填补 //其实就是将值乘以2^2也就是4.(数字没有溢出的情况下)

>>:右移运算符:从左向右结合

将位数右移,如x>>2; 将x的值右移2位,左边空出的两位用符号位填补(如果是无符号的就用0填补) 因为在计算机内部,负数是以补码的形式存在的,所以负数右移高位补1就合理了。

//其实就是将值除以2^n,正数如果有小数,那么舍去小数,负数如果有小数,舍去小数再减1

eg: -9>>2=-3; 9>>2=2;

~:按位求反

(一元运算符)每一位(包括符号位)都取反(0变1 1变0)总结:~x=-(x+1);

💡 优先级:~(与++ - - 正负相同优先级)>算术>移位>关系>相等性>&>^> | >逻辑

8.条件运算符 (?:)

表达式: 表达式1?表达式2:表达式3;从右向左结合

若表达式1为真(非0),则执行表达式2;

若表达式1为假(0),则执行表达式3

结合顺序:从右到左先找最右边的问号,然后找离它右边最近的冒号

当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。如果在问号和冒号之间还有一个问号或者冒号,应该满足就近配对,使结构不发生紊乱。

例如:w < x ? x + w : x < y ? x : y 与 w < x ? x + w : ( x < y ? x : y) 等价 与 (w < x ? x + w : x < y) ? x : y 不等价 a > b ? c > d ? e : f : g 与a > b ? (c > d ? e : f) : g等价

💡优先级:()> 自减自增 >算术 > 关系 > 相等性 > 逻辑运算符 > ? :

9.赋值运算符(=)

从右到左结合也可以和其他运算符结合,比如+= eg: i+=2 这个表达式的意思就是i=i+2 ,除此之外还有- =;*=;/=;%=;<<= ;>>=;&=;^=;|=;只要是二元运算符都可以和赋值运算符=结合,(a op= b),其等价于(a= (a) op (b))

10.总的优先顺序

优先级从高到低排列如下

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。