C语言中的基本运算包活:算术运算,赋值运算,自增自减,sizeof,关系运算(比较运算),逻辑运算,三目运算符
一、算术运算
1. 加法运算 (+)
能做加法运算,还能表示正号:+2、+13
2. 减法运算 (-)
能做减法运算,还能表示负号:-11、-13
3. 乘法运算 (*)
符号不是x,而是 *
4. 除法运算 (/)
整数除于整数,还是整数。1/2的值是0,并不是二分之一
5. 取余运算 (%)
两个整数相除之后的余数,%两侧只能是整数,正负性取决于%左侧的数值
*注意点
1> 自动类型转换
int a =10.3; // 只存整数 10
自动将大类型转换为了小类型,丢失了数据精度
2> 自动类型提升
int b =2.5+3; //将小类型提升为大类型
将右边的3提升为了double类型
3> 强制类型转换
int b = (int)2.5 ;
4> 参与运算的数据是什么类型,结果就是什么类型
double d = 10/3; //结果为3
double e = 3.0/2; //结果为1.5
double f = 3/2; //结果为1
二、赋值运算 (从右到左)
1.简单赋值
int b = 10; // 将10赋值给b
int a = 10 + 5; // 将10+5的值赋值给a
等号左边不能是常量,比如10 = 11;
2. 复合赋值
a += 4 + 5; // a = a + 4 + 5
三、自增自减
1. 自增运算符:如a++,++a,都等价于a = a+1;
2. 自减运算符:如a--,--a,都等价于a = a-1;
3. a++,++a的区别
int b;
int a = 10;
b=a++; //先将a的值赋值给b,再自增 b=10;a=11
int b;
int a = 10;
b=a++; //先将a自增,再将值赋值给b b=11;a=11
四、sizeof ( 用来计算一个变量或者一个常量、一种数据类型所占的内存字节数)sizeof( 变量\常量 )
sizeof 变量\常量
sizeof( 数据类型 )
不能是sizeof 数据类型
五、关系运算(比较运算)
1. 关系运算符的运算结果只有2种:如果条件成立,结果就为1,也就是“真”;如果条件不成立,结果就为0,也就是“假”。
2. 任何非0值都为“真”,只有0才为“假”
3. 关系运算符==、!=的优先级相等,<、<=、>、>=的优先级相等,且前者的优先级低于后者:2==3>1
4. 关系运算符的结合方向为”由左向右“: 4>3>2
5. 关系运算符的优先级小于算术运算符:3+4>8-2
六、逻辑运算1.逻辑与 (条件A&&条件B)
(1).只有A和B都成立,才为1(真),其它都为0(假)
(2).运算过程
若条件A成立,再判断条件B是否成立:如果条件B成立,结果就为1(真),如果条件B不成立,结果就为0(假)
若条件A不成立,不会再去判断条件B是否成立,结果是0(假)
2.逻辑或(条件A || 条件B)
(1).只要A或B有一个成立,就为1(真),只有A和B都不成立为0(假)
(2).运算过程
若条件A成立,不再判断条件B是否成立,结果为1(真)
若条件A不成立,再去判断条件B是否成立,若B不成立,结果是0(假),若B成立结果为1(真)
3.逻辑非 (!条件A)
对条件A进行取反:若条件A成立,结果就为0(假);若条件A不成立,结果就为1(真)
七、三目运算符 (条件?数值1:数值2)
(1) int a = 10>5 ? 9 : 89; // 如果10>5成立,返回9,不成立,返回89
(2)获取a和b中最大的数
int a=10;
int b=9;
int c=a>b?a:b;