算术运算符和表达式的概述
C语言中的算术运算符入下表。 算术表达式则由 算术运算符 + 操作数 组成。 操作数又称为运算对象,既可以是常量、变量也可以是函数。
算术运算符以及其优先级
运算符 | 含义 | 操作数 | 优先级 | 结合性 |
– | 取反 | 1(一元运算) | 最高 | 从右向左 |
* / % | 乘法 除法 取余 | 2(二元运算) | 较低 | 从左向右 |
+ – | 加法 减法 | 2(二元运算) | 最低 | 从左向右 |
运算符的区别和释意
一元(单目)运算符:只需要一个操作数 二元(二目)运算符:需要两个操作数 三元(三目)运算符:需要三个操作数(唯一一个)
#include<stdio.h>
int main( ){
int a,b,c,d,z;
a = 1 ;
b = 4 ;
c = 5 ;
d = 20;
printf("%d\n",-a);
printf("%d\n",a+b);
printf("%d\n",d-a);
printf("%d\n",b*c);
printf("%d\n",d/c);
printf("%d\n",c%2);
z = a>b?a:b;
printf("%d\n",z);
printf("%d\n",1/2);
//除数小于被除数,结果为0
return 0;
}
运算结果:
-1
5
19
20
4
1
4
0
由上可知, 1.第一个即是一元(单目)运算符,只需要一个运算数即a,-a a的值为1 ,取反即为-1(【注意】此时的a的值任然是1并未改变) 2.第2-6的加减乘除、求余则为二元(双目)运算符 可以看到运算符的左右两边都为运算数即需要两位运算数 3.【注意】 上面的 z 则为三元(三目运算符),需要 三个 运算数! 【代码解析】 z = a>b? a : b; 变量 条件 结果1 结果2 运算方式:当条件成立(为真)时,则z=a,反之z=b;,判断条件属于一个运算数,结果1为一个运算数,结果二也为一个运算数,这就是三元(三目)运算符。
int类型除数和float类型除数以及取余
1.int类型除数(整数除法) 例如: 3/2 为1而不是1.5,因为如果定义为int类型为十进制整数,也就吧小数点后的数给舍去且不四舍五入 2.float类型除数 (浮点数除法) 例如上面的举例,3.0/2.0 float类型 结果即为1.5,float类型为单精度浮点数,保留小数点后的数,如果对其控制输出长度则会进行四舍五入。 3.取余 % 顾名思义,取余则去除数除以被除数的余数。 例如: 5%2 2*2余1,结果为1, 【注意】如果除数小于被除数,结果直接为0,例如:1%2结果为0。 【注意】C语言中,求余限定参与运算的两个操作数必须为整型,不能对两个实型数据进行求余运算。
运算符的优先级
根据上面的算术运算符以及其优先级表可以知道,取反的优先级最高,*/%优先级较低,+-为最低。
#include<stdio.h>
int main( ){
int a,b,c,d,z,x;
a = 1 ;
b = 4 ;
c = 5 ;
d = 20;
z = d / b + b - a ;
// 先运算d/b为5 + b - a 为3 结果为8
printf("%d\n",z);
x = -10 - a * d / c;
// -10 - 1*20 / 5 结果为 -14
printf("%d\n",x);
return 0;
}
运算结果:
8
-14
其中的 + - * / %运算方向都为从左到右
【本节扩展例题】
3.1 用户输入一个三位数 取其中的个位 十位 百位 的值进行相加 即 输入123 则取出个位3 十位2 百位1 相加 1 + 2 + 3 = 6 (答案再下一页,请点击下方分页按钮)
Views: 0