个人总结C语言操作符

本文介绍了C语言中的逻辑运算符,包括&&和||。逻辑运算符用于比较操作数的逻辑值,产生真或假的结果。同时,文章提到C语言的逻辑运算符具有短路特性,当使用&&和||时,会根据前一个操作数的结果提前确定表达式的最终值,避免不必要的计算。
摘要由CSDN通过智能技术生成
C语言操作符
操作符是一种表示对数据进行某种运算处理的符号。
C语言编译器通过识别这些操作符完成各种算术运算 逻辑运 位运算等运算。

算术运算符
1)基本算术运算符
基本算术运算符包括双目的“+”“-”“*”“/”四则运算和“%”运算符,以及单目的“-”(负号)运算符。
说明:
1.基本算术运算符优先级与数学中一致。
2.“-”运算符可以当做负号运算符使用 用作运算符时只要一个操作数,运算结果时取操作数的负值。
3.“%”求余运算 也称为求模运算,即求两个数相除之后的余数.求模运算要求两个操作数只能是整型数据,返回后的是整除后的余数。

2)自增、自减运算符 “++”“--”
1.自增运算符是单目运算符,操作数只能是 整型变量分为前置和后置两种方式:
++i,在使用i之前,先使i的值增加1(称之为先增后用)
i++,在使用i之后,再使i的值增加1(称之为先用后增)
2.自减运算符与自增运算符一样也是单目运算符,操作数也只能是整型变量,也分为前置和后置两种方式:
--i,在使用i之前,先使i的值减1(称之为先减后用)
i--,在使用i之后,再使i的值减1(称之为先用后减)
说明:
自增自减运算符常用于循环语句,使循环控制变量自动加、减1,或用于指针变量,使指针向下递增或向上递增一个地址。

关系运算符
关系运算实际上就是比较运算,将两个值进行比较,根据两个值比较运算的结果给出一个逻辑值(即真假值)。
C语言提供的6种关系运算符 “<”“<=”“>”“>=”“==”“!=”
说明 关系运算符运算结果为0 或1,他们的值可作为算术值处理。
e.g: int x;
 x = 100;
 printf("%d\n", x > 20);//这个程序运行结果为1


逻辑运算符
逻辑运算就是比较运算,这种运算是将两个操作数的逻辑值进行比较,根据两个逻辑值运算结果得出一个逻辑值(真假值)。
C语言提供的3种逻辑运算符:&&、||
|| && 表示逻辑运算,||表示或者的意思,&& 表示并且的意思,例如 33>44 || "abcd"=="abcd",其结果是逻辑值true或false
说明计算逻辑表达式时 &&和||时一种短路运算,即在计算的过程中只要表达式的值能确定,就不在运算下去了。
e.g : exp1&&exp2,若exp1=0 则可确定表达式的值为0,不再计算exp2。


条件运算符
条件运算符实际上也是比较运算,这种运算将两个以上的操作数运算后的逻辑值进行比较,根据结果的逻辑值(真假值)进行判断并决定执行的顺序。
形如:exp1?exp2:exp3     若exp1值为真,则条件表达式取表达式2的值,否则取表达式3的值。
说明:
1)其中exp1 必须为逻辑表达式。
2)条件运算符是C语言中唯一的三目运算符。
3)条件运算符优先于赋值运算符。
4)条件运算符的结合方向为“从左向右”。
逗号运算符
逗号运算提供一个顺序求值运算形式,相当于某操作数的一个接力运算。
逗号运算符只能用于逗号表达式中 形如:
表达式1,表达式2  含义是先计算表达式1 再计算表达式2,并以此作为整个表达式的值。
e.g : "a=3*4,a*5" 先求解a=3*4得到a=12,然后求解a*5得到60,即整个逗号表达式的值是60。

赋值运算符
赋值运算是一种在程序设计中应用频繁的操作,通过赋值运算可以访问存储单元中的内容,让变量得到初始值,完成表达式的计算。
赋值运算用在赋值表达式中,用来计算“=”右边表达式的值并存入“=”左边的变量中。
复合赋值运算符:
在基本赋值运算符“=”之前加上任意双目运算符及位运算符可构成赋值运算符,又称带运算的赋值运算符。
复合运算符的分类:
算术复合赋值运算符有5种 :
-=,+=,*=,/=,%=
位符合赋值运算符有5种:
<<=,>>=,&=,^=,|=

位运算符
位运算只能用于整型数据,即把整型数据看成固定的二进制序列,然后对这些二进制序列进行按位运算。
位运算符包括位逻辑运算符4种:&,|,^,~;位移位运算符2种:<<,>>;
1)位逻辑运算
1.按位取反运算。按位取反运算符:~
2.按位与运算。按位与运算符:&
按位取反运算规则当两个操作数对应位都是1时,该位运算结果为1,否则为0。
与1按位与 如果为1 最低位为1;如果为0最低位为0.(可以用来实现判断一个整数二进制码中有几个1)
3.按位或运算符。按位或运算符:|
按位或运算规则 当两个操作数的对应位都是0时,该位运算结果为0;否则为1。
 
4.按位异或运算符。按位异或运算符:^
按位异或运算规则当两个操作数的对应位相同时,该为运算结果为0,否则为1。
可用来实现:不使用中间变量交换两个变量的值。

2)移位运算
1.向左移位运算。 向左移位运算符:<<
向左移位运算可以用来实现快速乘2运算。
2.向右移位运算。向右移位运算符:>>
向右移位运算可以用来实现快速除2运算。
说明:
移位时 值不会发生变化
逻辑左移=算数左移,右边统一添0
逻辑右移,右边丢弃,左边统一添0
算数右移,左边添加的数和符号有关
e.g :
1010101010,其中[]位是添加的数字
逻辑左移一位:010101010[0]
算数左移一位:010101010[0]
逻辑右移一位:[0]101010101
算数右移一位:[1]101010101

其他的运算表达式
1.取地址运算
取地址运算:&
取地址运算可以得到变量的地址,其操作数只能是变量。
2.求字节运算
求字节运算符:sizeof
求字节运算的操作数可以是类型名,也可以是变量,表达式,运算后可以求得相应类型或数据所占的字节数,即返回变量或类型修饰符的字节长度。
说明 sizeof用于数据类型时,数据类型必须用圆括号括起来;用于变量时,可以不用圆括号括起来。
e.g:
sizeof(int)  而sizeof(f)和sizeof f等价。
3.括号运算
圆括号运算符 ()
圆括号运算一方面用用来改变运算的优先级顺序,圆括号在运算符优先级内最优先;另一方面可以用来强制进行数据类型转换。
e.g: int(x+y)  可将x+y的值强制转换为整型。
4.下标运算符[]
下标运算符 主要用于数组中,用于得到数组的分量下标值。

操作符属性
 对于复杂表达式求值的影响有三个因素
1.操作符的优先级
2.操作符的结合性
3.是否控制求值顺序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值