一、运算符分类:
1、赋值运算符 : =
2、算术运算符: + - * / %(取余 取模)
3、关系运算符: > >= < <= == !=
4、逻辑运算符: && || !
5、其他运算符: ++ -- ?: 复合 += -=
6、位运算符 : & | ^ ~ << >>
二、赋值运算符
格式: 变量名(内存空间) = 表达式(可以是常量,也可以是变量,也可以是一个式子)
注意:原则上来说赋值运算符左右两侧 类型要一致,如果不一样会发生自动转换,如果转不了会报警告和报错。
如果需要转换类型,可以使用强转。
强转格式: (类型)变量名;
例:
int a=10;
char* b = (char*)a; //将a的值转成char*类型传给b空间
三、算术运算符
1、/(除):
如果两边都是整数结果是整数
如果有一个数小数结果就是小数
例:
10 / 3 == 3
10.0 / 3 == 3.333
x,y是double类型,x=1,y=x+3/2=2.0.
2、 %(取余数):
注意:两边必须都要是整数
m % n 的最大值为 n - 1,最小值为0。
用法:1、%可以用于整除问题。
2、%可以用于数据分离。
十进制数据的分离:
3456 分离出它的个位 十位 百位 千位
思路1:从原数据中将想要获取的数字放在最高位
千位: 3456 / 1000 % 10 == 3
百位: 3456 % 1000 / 100 == 4
十位:3456 % 100 / 10 == 5
个位:3456 % 10 == 6
思路2:从原数据中将想要获取的数字放在个位上
个位:3456 % 10
十位:3456 / 10 % 10 == 5
百位:3456 / 100 %10== 4
千位:3456 / 1000 % 10 == 3
四、关系运算符
在C语言中分为关系成立或者不成立,成立就为真,输出值为1 不成立那就是假 ,输出值为 0
3 > 5 不成立 ,表达式的结果是0
例:
int res = 3 > 5; // res -- 0
int c = 5;
c == 5 结果是1
c = 10; // 赋值
整除问题:
m能被n整除表达式: m % n == 0
m不能被n整除表达式: m % n != 0
五、逻辑运算符
1、&&: 逻辑与
格式: 表达式1 && 表达式2
规则:全真为真,有假则假
表达式1 表达式2 表达式1 && 表达式2
真 真 真
真 假 假
假 --------- 假
注意:当表达式1为假时,不判断表达式2的真假,直接输出0
2、||:逻辑或
格式:表达式1 || 表达式2
规则:有真则真,全假为假
表达式1 表达式2 表达式1 || 表达式2
真 ------- 真
假 真 真
假 假 假
注意:当表达式1为真时,不判断表达式2的真假,直接输出1
3、!: 逻辑非
格式: !表达式
规则: 真变假 假变真
表达式 !表达式
真 假
假 真
六、其他运算符
1、++: 自增1
-- : 自减1
单独语句使用:++在前和++在后没有区别
例:
int a = 5;
int b = 5;
a++; // a = a + 1; // a = 6
++b; // b = b + 1; // b = 6
printf("%d %d",a,b); // 6,6
作为计算表达式的一部分:++在前先加后用, ++ 在后先用后加
例:
int a = 5;
int b = 5;
int c = a++; // 先用a当前的值作为(a++)表达式的结果,结果是5, c=5;
int d = ++b; // b = b + 1 = 6 (++b)表达式的结果是6 d = 6;
printf("%d %d\r\n",c,d); // 5 6
printf("%d %d\r\n",a,b); // 6 6
2、?:(三目运算符)
格式:
表达式1 ? 表达式2 : 表达式3
规则:
先计算表达式1的结果,如果为真,三目运算符的结果就是 表达式2的结果
如果为假,三目运算符的结果就是 表达式3的结果
3、复合运算符:
格式:
算术+赋值
位运算+赋值
+= -= *= /= %=
&= |= ^= <<= >>=
应用:
int a = 3;
a += 2; // a = a + 2;
如果实现一个变量自增1操作:a = a + 1; a++; ++a; a+=1;
4、逗号运算符:
逗号运算符的规则:从左往右计算,最有一个表达式的结果作为,运算符的结果。
七、位运算符
1、&:按位与
格式:数据1 & 数据2
规则:全1为1,有0则0
2、|:按位或
格式: 数据1 | 数据2
规则:有1则1,全0为0
3、<<:按位左移
格式: 数据 << 移动的位数
规则:
数据整体左移,低位补0,高位溢出舍弃
4、>>:按位右移
格式: 数据 << 移动的位数
规则:
数据整体右移,高位补符号位的那个值,低位溢出舍弃
5、~:按位取反:
格式: ~数据
规则: 所有位,0变1,1变0
标签:10,3456,入门,++,C语言,运算符,int,表达式 From: https://blog.csdn.net/nobgo/article/details/141069814