传智播客-C语言-第二版本-基础班-0824-运算符
运算符
数据对象:泛指数据在内存的存储区域
左值:表示可以被更改的数据对象
右值:能赋给左值的量
实例
#include<stdio.h> int main() { int a = 0; int b = 0; scanf("%d", &a); scanf("%d", &b); printf("%d\n", a / b); system("pause"); return 0; }
实例
#include<stdio.h> int main() { double a = 0; double b = 0; scanf("%lf", &a); scanf("%lf", &b); double c = c / b; printf("%lf\n", a / b); system("pause"); return 0; }
+、-、*、/、
% - 取模,取余数
+=、-=、*=、/=、%=、++、--
实例
#include <stdio.h> int main() { int i = 0; i++; int a = 10; a += ++i + a++ + i + a; printf("%d\n", a); system(pause); reutrn 0; }
逗号运算符
int I = 6 + 5, 3 + 2
逗号表达式先求逗号左边的值,然后求右边的值,整个语句的值是逗号右边的值。
运算符优先级
优先级 |
运算符 |
结合性 |
1 |
++(后缀),--(后缀),()(调用函数),{}(语句块),.,-> |
从左到右 |
2 |
++(前缀),--(前缀),+(前缀),-(前缀),!(前缀),~(前缀),sizeof,*(取指针值),&(取地址),(type)(类型转化) |
从右到左 |
3 |
*, /, % |
从左到右 |
4 |
+,- |
从左到右 |
5 |
<< >> |
从左到右 |
6 |
< > <= >= |
从左到右 |
7 |
== != |
从左到右 |
8 |
& |
从左到右 |
9 |
^ |
从左到右 |
10 |
| |
从左到右 |
11 |
&& |
从左到右 |
12 |
|| |
从左到右 |
13 |
? |
从右到左 |
14 |
=,*=,%=,+=,-=,<<=,>>=,&=,|=,^= |
从右到左 |
15 |
,(逗号运算符) |
从左到右 |
复合语句
{}代码块
类型转化
实例
#include <stdio.h> int main() { double d = 10.2; int a = d; //隐式转换 int a1 = 3; int a2 = 2; double mid = a1 / a2; printf("mid=%f\n", mid); double mid2 = (double)a1 / (double)a2; //显示的强转 printf("mid2=%f\n", mid2); int hex = 0x12345678; char chex = hex; printf("chex = %d\d", chex); printf("chex = %x\d", chex); short chex = hex; printf("chex = %x\d", chex); int a = d / 2; double f = d / 2; printf("%d\n", a); printf("f = %f\n", f); system(pause); reutrn 0; }
优质内容筛选与推荐>>