[我的C语言学习笔记(05)]C语言运算符与类型转换

本文详细介绍了C语言中的各种运算符,包括数学运算符、位运算符、逻辑运算符、关系运算符、移位运算符、三目运算符、后赋值和sizeof。同时讲解了类型转换的自动转换和强制转换,以及它们的优劣和注意事项。
摘要由CSDN通过智能技术生成

运算符

数学运算符

包括 +、-、*(在此处是乘的意思,同时它还是解引用运算符,在指针部分会有详解)、/、%、++、- -。

注意:/ 运算当除数和被除数都是整数时,运算结果也是整数;如果不能整除,那么就直接丢掉小数部分,只保留整数部分,这跟将小数赋值给整数类型是一个道理。
除数和被除数中有一个是小数,那么运算结果也是小数,并且是 double 类型的小数。
除数不可为 0 。

其中+ - * /与平时的数学运算无异。%的意思是取模,即取余数,如

int a = 10;
int b = a % 3;
printf("%d\n", b);

输出结果为1。
++、- - 被称为自增、自减运算符。要注意:在使用时,若为前缀则先自增/减再使用,若为后缀则先使用再自增/减。

int c1 = 10, c2 = 20, c3 = 30, c4 = 40;
printf("origin:%d,  %d,  %d,  %d\n", c1, c2, c3, c4);
int c1_1 = c1++, c2_1 = ++c2, c3_1 = c3--, c4_1 = --c4;
printf("after:%d,  %d,  %d,  %d\n", c1, c2, c3, c4);
printf("%d,  %d,  %d,  %d\n", c1_1, c2_1, c3_1, c4_1);

输出结果:
origin:10, 20, 30, 40
after:11, 21, 29, 39
10, 21, 30, 39
可见,无论是前自增减还是后自增减,都会对原来的变量产生影响,而只有前自增减会影响赋值符左的变量,后自增减不影响。
另外,让变量自增减还有另外一种方法:

int i = 1;
i++;
i--;
++i;
--i;

就我目前的水平,自增减符在前和在后都一样,运行结果也都一样。姑且先这么记。

位运算符

包括 &(按位与)、|(按位或) 、^(按位异或)、~(按位取反)。
其中,&、|、^是双目运算符,~是单目运算符。位运算符对数字的二进制按位进行逻辑运算,结果为数字。
与逻辑:

输入 输入 结果
1 1 1
1 0 0
0 1 0
0 0 0

或逻辑:

输入 输入 结果
1 1 1
1 0 1
0 1 1
0 0 0

异或逻辑:

输入 输入 结果
1 1 0
1 0 1
0 1 1
0 0 0

非逻辑:

输入 结果
1 0
0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值