概述
C语言从0到1(05)——运算符(02)
- 一、关系运算符
- 二、赋值运算符:=
- 三、运算符:sizeof()
- 四、运算符优先级
一、关系运算符
也叫条件运算符,一般与条件结构一起使用,进行条件判断;
连接两个操作数,对其进行比较,得到true(1)或false(0)。
int a = 8;
int b = 10;
printf("%dn", a>10);
printf("%dn", a>=10);
printf("%dn", a<10);
printf("%dn", a<=10);
printf("%dn", a==10);
printf("%dn", a!=10);
输出结果:
0
0
1
1
0
1
二、赋值运算符:=
把右边操作数的值赋给左边操作数。注意,赋值运算符,先运算右边表达式,再将值赋给左边。
int a = 0;//定义变量,并初始化赋值
int b = 10;
printf("a:%dn", a);
a = b+2;
printf("a:%dn", a);
输出结果:
a:0
a:12
例:a = 10; b = 20; 将a,b两个变量的值互换
int a = 10;
int b = 20;
//利用油水互换的原理
int tmp = 0;//定义一个临时变量
tmp = a;
a = b;
b = tmp;
printf("a:%d, b:%d, tmp:%dn",a,b,tmp);
输出结果:
a:20, b:10, tmp:10
- 复合赋值运算符:+=、-=、*=、/=、%=
与算术运算符、位运算符组合使用。
如: a += 10; 等价于 a = a + 10;
int a = 15;
int c = 2;
c +=
a;// c = c + a;
printf("+=:c 的值 = %dn", c );
c -=
a;// c = c - a;
printf("-=:c 的值 = %dn", c );
c *=
a;// c = c * a;
printf("*=:c 的值 = %dn", c );
c /=
a;// c = c / a;
printf("/=:c 的值 = %dn", c );
c %=
a;// c = c % a;
printf("%%=:c 的值 = %dn", c );
输出结果:
+=:c 的值 = 17
-=:c 的值 = 2
*=:c 的值 = 30
/=:c 的值 = 2
%=:c 的值 = 2
注意:赋值运算符,先运算右边表达式
int a = 10;
a *= a+5;
上述a的值为多少?
三、运算符:sizeof()
- **sizeof():**得到变量或数据类型的大小(字节)。
int a = 0;
char c = '@';
float f1 = 1.1;
double f2 = 2.0;
printf("%d, %d, %d, %dn", sizeof(a), sizeof(c), sizeof(f1),sizeof(f2));
//也可以直接sizeof(int)
printf("%d, %d, %d, %dn", sizeof(int), sizeof(char), sizeof(float),sizeof(double));
输出结果:
4, 1, 4, 8
4, 1, 4, 8
四、运算符优先级
在一个,多个运算符组合的表达式中,运算符的优先级 会影响到一个表达式如何计算。
某些运算符比其他运算符有更高的优先级,例如,乘除运算符具有比加减运算符更高的优先级。
运算符优先级一览表:
类别 | 运算符 | 结合性 |
---|---|---|
后缀 | () [] -> . ++ - - | 从左到右 |
一元 | + - ! ~ ++ - - (type)* & sizeof | 从右到左 |
乘除 | * / % | 从左到右 |
加减 | + - | 从左到右 |
移位 | << >> | 从左到右 |
关系 | < <= > >= | 从左到右 |
相等 | == != | 从左到右 |
位与 AND | & | 从左到右 |
位异或 XOR | ^ | 从左到右 |
位或 OR | | | 从左到右 |
逻辑与 AND | && | 从左到右 |
逻辑或 OR | ||| | 从左到右 |
条件 | ?: | 从右到左 |
赋值 | = += -= *= /= %=>>= <<= &= ^= |= | 从右到左 |
逗号 | , | 从左到右 |
如下示例:
int a = 20;
int b = 10;
int c = 15;
int d = 5;
int e;
e = (a + b) * c / d;
// ( 30 * 15 ) / 5
printf("(a + b) * c / d 的值是 %dn",
e );
e = ((a + b) * c) / d;
// (30 * 15 ) / 5
printf("((a + b) * c) / d 的值是 %dn" ,
e );
e = (a + b) * (c / d);
// (30) * (15/5)
printf("(a + b) * (c / d) 的值是 %dn",
e );
e = a + (b * c) / d;
//
20 + (150/5)
printf("a + (b * c) / d 的值是 %dn" ,
e );
输出结果:
(a + b) * c / d 的值是 90
((a + b) * c) / d 的值是 90
(a + b) * (c / d) 的值是 90
a + (b * c) / d 的值是 50
**总结:**本节讲解了关系运算符、复制运算符、sizeof和运算符的优先级,都是非常重要的知识点,希望童鞋们可以多运用。下一节讲解“条件结构”
练习:
练习:
1.小明身上有5.6块钱, 小红身上有9.4块钱,用程序算出他们一共有多少块钱。
2.根据天数(46)计算周数。
3.一个整数,代表88个小时,计算88个小时等于多少天零多少个小时。
4.输入一个四位数的整数,然后将该数的各个位上的数字求和,输出。如,1234,拆分为1 + 2 + 3+ 4 = 10 。
5、定义一个变量记录硬盘的大小,如10000000byte,那么计算这个硬盘有多少KB
有多少MB。有多少GB。
Byte
KB
MB
GB
10000000
?
?
?
最后
以上就是潇洒绿草为你收集整理的C语言从0到1(05)——运算符(02)的全部内容,希望文章能够帮你解决C语言从0到1(05)——运算符(02)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复