运算符与表达式

1.单纯赋值运算符"="

它是个双目运算符,结合性是从右到左。

2.复合赋值运算符

在"="前面加上其他运算符,即构成复合的运算符。

记主两个不常见的:

a >>=b—>a=a>>b;

a<<=b—>a=a<

3.赋值表达式

,即变量=表达式

注意:赋值表达式的左侧只能是一个变量名,而不能是一个表达式,如:a+b=b+c,是不对的

赋值运算符的右边也可以是赋值表达式,例如a=b=c=2,即将a,b,c都赋值为2。

4.特殊的赋值运算符

自增"++"

他的作用是使变量的值加1。

自减运算符"–"

它的作用是使变量的值减1。

总结

自增和自减运算符的结合方向是自右向左

自增自减在前,变量会先执行自增或自减在进行其他操作

自增自减在后,变量会现参与运算在执行自增和自减

5.赋值中的类型转换

在进行赋值运算时,会遵循将表达式右侧的值的类型转换成表达式左边的值的类型。(赋值时的类型转换是指上是强制的)

浮点型与整型

将浮点型装换成整型时,将舍弃浮点数的小数部分,只保留整数部分。将整型值付给浮点型变量,数值不变,即小数点后带若干个0.

单双精度浮点型

由于C语言中的浮点数总是用双精度来表示的,所以float型数据只是子啊尾部加0延长为double型数据参加运算。然后直接赋值。double转成float型通过截尾数来实现,截断前要进行四舍五入操作。

char型与int型

int 型赋值char形时,只保留其最低八位,高位舍弃。

char型赋值给int型变量时,有些编译程序不管其值大小,都做正数处理。有些编译程序在转换时,若char型数据值大于127,就做负数处理。对于使用者来说,如果原来的char型数据取正值,转换后仍为正值;如果原来的char型可正可负,则转换后仍然保持原值,只是数据的内部表示形式有所不同。

int和long型

long型赋值个int型值,将低16位赋值给int型变量,而将高十六位阶段舍弃。(这里假设int占两个字节)

而将int型赋值给long 型时,其外不值保持不变,而内部形式有所改变。

无符号整数

unsigned赋值给signed时,内部的存储形式保持不变,但是外部的值却可能改变。

而将一个signed型整型数据赋值给长度相同的unsigned型变量时,内部的存储形式不变,但外部表示时总是无符号的。

6.逗号运算符和表达式

C语言中","也是一种运算符,称为逗号运算符。其功能是将两个两个表达式连接起来组成一个表达式。

表达式1,表达式2

如:y=(x=a+b),c+d;

本例中,y是整个表达式的值,也就是表达式2的值,x是第一个表达式的值。对于逗号表达式:

逗号表达式一般形式中的表达式1,和表达式2也可以是逗号表达式的值。

将其进行扩展为"表达式1,表达式2,表达式3…表达式n",整个逗号表达式的值就是表达式n的值。

程序中使用逗号表达式,通常是要分别求逗号表达式内各各表达式的值。

并不是在所有出现否好的地方都组成逗号表达式,如在白能量的说明中,函数参数表中逗号只是用于各变量之间的间隔符。

例如:y=(z=8,x=5,y=3);

z赋值为3,x赋值为5,y赋值为3。

z = (x=5,y=6,x+y);

z赋值为11,x赋值为,y赋值为6;

7.位运算符与表达式

位运算符

位运算符是指进行二进制位运算。

与运算符(&)

双目操作符,当两个进行相与时,只有两者都为"1"时结果才为"1"

或运算符

双操作符,当当两个位进行相或时,只要其中有一方为1,结果就为1。

异或操作符(^)

相同为0,不同为1。

移位操作符(<>)

区分逻辑移位与算术移位。

位表达式

在这些位运算符中,取反运算符优先级别最高,其次是移位运算符,再次是与或,异或。

在实际使用中,通常是用其进行赋值运算。

如:a<<=2 ---->a=a<<2;

记住:这种复合运算符的执行效率更高。

8.关系运算符和表达式

关系运算符

关系表达式

关系表达式的值一般为0,则为假,非0则为真。

9.逻辑运算符和表达式

逻辑运算符

运算符

含义

&&

逻辑与

||

逻辑表达式

表达式 逻辑运算符 表达式

如:a>b && c>d

10.sizeof操作符

sizeof是一个单目运算符,他的运算对象是变量或数据类型,运算结果为一个整数类型。运算的一般形式如下:

sizeof()

注意:sizeof只针对数据类型,不针对变量

11.条件运算符

条件运算符是C语言中唯一一个三目运算符

? :

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值