C基础——基本运算


一、算术运算符
1、运算顺序
优先级不同时:先运算优先级高的,再运算级低的;
优先级相同时:从左到右运算。
2、取余运算%两侧必须都为整数,并且结果值的正负与被除数一致,即与 % 左边的数一致。
3、整除运算/,若两边同时为int型,则运算结果为int型:例如:3/2=1;若/两边又一边为double型,则运算结果为double型。
4、如果想强制进行某些运算,可以使用小括号(),小括号()的优先级别最高。

二、赋值运算符
1、简单赋值运算符 =
等号 =表示把 = 右边的数赋值给 = 左边的变量,如下:
int a = 10; // 表示把10赋值给a,这样a的值就是10了。
还可以连续赋值
int a, b;
a = b = 10;
注意:等号=左边只能是变量,不能是常量
2、复合赋值运算符
+= 加赋值运算符。如a += 3+2,等价于 a = a +(3+2)
-= 减赋值运算符。如a -= 3+2,等价于 a = a -(3+2)
*= 乘赋值运算符。如a *= 3+2,等价于 a = a *(3+2)
/= 除赋值运算符。如a /= 3+2,等价于 a = a /(3+2)
%= 取余赋值运算符。如a %= 3+2,等价于 a = a %(3+2)

三、自增运算符和自减运算符
++ 自增运算符。如a++,++a,都等价于a = a+1
-- 自减运算符。如a--,--a,都等价于a = a-1
1、++a和a++的区别
例如:
int a = 10;
int b = ++a;
++a的意思是先对a执行+1操作,再将a的值赋值给b。因此最后a、b的值都是11
int a = 10;
int b = a++;
a++的意思是先将a的值拷贝出来一份,然后对a执行+1操作,于是a变成了11,但是拷贝出来的值还是10,a++运算完毕后,再将拷贝出来的值10赋值给了b,所以最后变量b的值是10,变量a的值是11
--a和a--的区别也是一样的。

四、sizeof
1>用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。
2>基本形式:
sizeof(变量\常量 )
sizeof 变量\常量
sizeof(数据类型 )
注意,不可以写成sizeof float

五、逗号运算符
逗号运算符主要用于连接,它的一般形式为:表达式1,表达式2, ……, 表达式n。
逗号表达式的运算过程是:从左到右的顺序,先计算表达式1,接着计算表达式2,...,最后计算表达式n。
逗号运算符也是一种运算符,因此它也有运算结果。整个逗号表达式的值是最后一个表达式的值。

六、关系运算符(比较运算)
关系运算符:<、<=、> 、>=、== 、 !=  
1> 关系运算符的运算结果只有2种:如果条件成立,结果就为1,也就是“真”;如果条件不成立,结果就为0,也就是“假”。
2> 在关系运算符中,==、!=优先级相等,< 、<=、>、>=这4个优先级相同,且前面两个的优先级低于后面4个的优先级。
    eg:2==3>1,先计算3>1返回1,2==1不成立返回0
3> 关系运算符的优先级小于算数运算符优先级。
   eg:3+4>8-2  => 7>6  =>1

七、逻辑运算符
C语言提供了3个逻辑运算符:&&(逻辑与)、||(逻辑或)、!(逻辑非)。注意:这些都是英文字符,不要写成中文字符。跟关系运算符一样,逻辑运算的结果只有2个:“真”为1,“假”为0。
1、&&逻辑与
使用格式:“条件A &&条件B”
运算结果:只有当条件A和条件B都成立时,结果才为1,也就是“真”;其余情况的结果都为0,也就是“假”。因此,条件A或条件B只要有一个不成立,结果都为0,也就是“假”
运算过程:
总是先判断条件A是否成立
如果条件A成立,接着再判断条件B是否成立:如果条件B成立,“条件A && 条件B”的结果就为1,即“真”,如果条件B不成立,结果就为0,即“假”;
如果条件A不成立,就不会再去判断条件B是否成立:因为条件A已经不成立了,不管条件B如何,“条件A&& 条件B”的结果肯定是0,也就是“假;

2、|| 逻辑或
使用格式:“条件A ||条件B”
运算结果:当条件A或条件B只要有一个成立时(也包括条件A和条件B都成立),结果就为1,也就是“真”;只有当条件A和条件B都不成立时,结果才为0,也就是“假”。
运算过程
总是先判断条件A是否成立
如果条件A成立,就不会再去判断条件B是否成立:因为条件A已经成立了,不管条件B如何,“条件A|| 条件B”的结果肯定是1,也就是“真”
如果条件A不成立,接着再判断条件B是否成立:如果条件B成立,“条件A || 条件B”的结果就为1,即“真”,如果条件B不成立,结果就为0,即“假”

3、!  逻辑非
使用格式:“!条件A”
运算结果:其实就是对条件A进行取反:若条件A成立,结果就为0,即“假”;若条件A不成立,结果就为1,即“真”。也就是说:真的变假,假的变真
注意:
可以多次连续使用逻辑非运算符:!(4>2)结果为0,是“假”,!!(4>2)结果为1,是“真”,!!!(4>2)结果为0,是“假”
C语言规定:任何非0值都为“真”,只有0才为“假”。因此,对非0值进行逻辑非!运算的结果都是0,对0值进行逻辑非!运算的结果为1。!5、!6.7、!-9的结果都为0,!0的结果为1。

八、三目运算符
使用格式:表达式A ?表达式B : 表达式C
运算结果:如果表达式A成立,也就是为“真”,条件运算符的结果就是表达式B的值,否则,就为表达式C的值。
eg:计算两个整数之间的最大值:  int c = a > b ? a : b; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值