C语言操作符优先级
- C语言操作符
- 1、操作符的优先级序表
- 2、操作符的属性
- 2.1、操作符优先级运算例程1
- 2.2、操作符优先级运算例程2
C语言操作符
前言:
(1)在我们熟悉的数学加减乘除运算中,都知道先乘除再加减,有括号的先算括号里的式子。
(2)C语言中:
那么在C语言操作符中同样具有运算的优先级,一起来了解看看吧。
/知识点回顾/
之前的篇章已经详细描述了操作符,这里就简单复习一下即可。
链接: C语言详解操作符
1、操作符的优先级序表
如图所示:
2、操作符的属性
复杂表达式的求值往往有三个影响操作符属性的因素:
1.操作符优先级
2.操作符的结合性
3.是否控制求值顺序
2.1、操作符优先级运算例程1
/*例程1*/
#include <stdio.h>
int main()
{
int a = 3;
int b = 5;
int c = 2;
int d = a+b*c;//先乘除运算后加减运算
printf("%d\n",d);
d = (a+b)*c;
printf("%d\n",d);//圆括号优先级大于乘法运算,所以先加后乘
short m = (short)2.5+6;//( )强制类型转换转换操作符优先级大于+
printf("%hd\n",m);
int n = (int)2.5*6;//( )强制类型转换转换操作符优先级大于*
printf("%d\n", n);
return 0;
}
小结:
强制类型转换:()是括数据类型
如:int a= (int)3.14; 把3.14强制转换成int型
printf(“%d\n”,a); //a的结果为3。
a、double(大)—>int(小) 可能会丢失数据,报错
b、int(小)–>double(大) 满足条件
2.2、操作符优先级运算例程2
/*例程2*/
#include <stdio.h>
int main()
{
int a = 4;
int b = 5;
int c = a + b * c;//优先级决定运算顺序
int d = a + b + c;//当优先级相同那么结合性决定运算顺序
return 0;
}
小结:
1.优先级决定运算顺序
2.当优先级相同那么结合性决定运算顺序