一、运算符的优先级
1.C语言中 ()优先级最高 ,下标运算符[],.点语法(属性),
->指针(成员选择)
2.自增++,自减--,* 间接寻址运算符,&取地址,!逻辑非
3./ 除 ,*法 ,+,-,<< >>,>,>=,<,<=,==,!=,&按位与,^异或
4.&&逻辑与 ,||逻辑或, 条件运算符?:,= 赋值运算符
5. 逗号运算符 ,
二、类型转换
1.自动类型转换(隐式类型转换)
就是不同类型的数值,如 double int float在进行运算时,系统会自动将级别低得类型转换为级别高的类型,然后进行运算,运算的结果与其中级别较高的操作数的类型相一致。
1.使用算术运算符 或算术表达式的运算过程中
double res = 0;
int a = 100;
int b = 50;
res = a + b;
res = 3.14 + 2.5;
2.就是在赋值运算符 或赋值表达式的过程中
char ch = 'A';
int b = 'A' - 32;
3.输出转换
char ch = 'A';
printf("%c\n",ch); ----->A
printf("%d\n",ch); ----->65
float fl = 3.14f;
printf("%.2f\n",fl); ---->3.14
printf("%d\n",fl); ---->3
补充:隐式类型转化的规则
double <-----float
^
|
unsigned long<------ long
^
|
unsigned int <------ unsigned short int
^
|
int <-------short 、char
2.强制类型转换(显式类型转换)
强制是利用强制类型转换讲数据类型转换成我们所需要的类型。
如: int a = 5;int b = 2;
double res = (double)a/b;
int c = 3,float d = 2.5;
(int)d + c;