C语言运算符和表达式

C语言运算符和表达式

算术运算符和表达式的概述

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

默认图片
JiHua

一个专注于前端和NodeJs的网站开发者

文章: 48