企业网站建设哪家效果好,龙岩网站优化费用,那个网站上有做婚礼布场样图的,wordpress移动端加底部导航栏目录 1.运算符的优先级和结合性 1.1运算符的优先级
1.2结合性
2.操作符的使用最终带来的是一个表达式的值
2.1.隐式类型转换#xff08;整型提升#xff09;
2.1.1整形提升的例子
2.2算术转换 1.运算符的优先级和结合性 运算符是编程语言中的基本元素之一#xff0c;主…目录 1.运算符的优先级和结合性 1.1运算符的优先级
1.2结合性
2.操作符的使用最终带来的是一个表达式的值
2.1.隐式类型转换整型提升
2.1.1整形提升的例子
2.2算术转换 1.运算符的优先级和结合性 运算符是编程语言中的基本元素之一主要是为了让程序可以对数据进行各种各样的操作和计算。运算符可以用来进行算术运算、比较、逻辑判断、赋值等操作可以让程序更加灵活和高效。例如算术运算符可以用来进行加、减、乘、除等数学运算比较运算符可以用来比较两个数的大小关系逻辑运算符可以用来进行与、或、非等逻辑判断赋值运算符可以用来将数据保存到变量中等。因此运算符是编程语言中非常重要的组成部分它们可以让程序可以更加方便、快速地处理数据和实现各种算法和逻辑。 1.1运算符的优先级
运算符一览表中运算符越靠上优先级越高。例如进行乘除法运算的★和/比进行加减法运算的和–优先级高这与我们实际生活中使用的数学规则是一样的。
例如a b * c
会被解释为a (b * c)而不是(a b) * c。虽然写在前面但还是先进行*的运算。
1.2结合性
这里有必要对结合性作一下说明。假如用〇表示需要两个操作数的双目运算符那么对于表达式
a O b O c
左结合运算符会将表达式解释为:
(a O b) O c
右结合运算符会将表达式解释为
a O b O c
也就是说遇到优先级相同的运算符时结合性指明了表达式应从左往右运算还是从右往左运算。
例如执行减法计算的双目运算符–是左结合性的所以
5 - 3 - 1→(5 - 3) - 1 /*左结合性*/
如果为右结合性就会解释为5-(3-1)答案就不正确了。执行赋值操作的简单赋值运算符是右结合性的所以解释如下:
a b 1 →a (b 1) /*右结合性*/
2.操作符的使用最终带来的是一个表达式的值
2.1.隐式类型转换整型提升 C的整型算术运算总是至少以缺省整型类型的精度来进行的。 为了获得这个精度表达式中的字符和短整型操作数在使用之前被转换为普通整型这种转换称为整型提升。 整型提升的意义 //实例1
char a,b,c;
...
a b c;
//b和c的值被提升为普通整型然后再执行加法运算。
//加法运算完成之后结果将被截断然后再存储于a中。
如何进行整体提升呢 整形提升是按照变量的数据类型的符号位来提升的 2.1.1整形提升的例子
例1
//实例1
int main()
{char a 0xb6;short b 0xb600;int c 0xb6000000;if(a0xb6)printf(a);if(b0xb600)printf(b);if(c0xb6000000)printf(c);return 0;
}
实例1中的a,b要进行整形提升,但是c不需要整形提升 a,b整形提升之后,变成了负数,所以表达式 a0xb6 , b0xb600 的结果是假,但是c不发生整形提升,则表 达式 c0xb6000000 的结果是真. 所程序输出的结果是: 分析
首先a的二进制表示如下
char a-74 原码1011 0110有符号数第八位为符号位
得到其补码1100 1010——(整型提升)—— 111111111111111111111111 11001010补码该补码表示的数字是 -54-74.
同方法可得出前两个if判断都为假
只有最后为int类型的c不会发生整型提升因此判断为真输出结果为c。 例2
//实例2
int main()
{char c 1;printf(%u\n, sizeof(c));printf(%u\n, sizeof(c));printf(%u\n, sizeof(-c));return 0;
} 分析
实例2中的,c只要参与表达式运算,就会发生整形提升
表达式 c ,就会发生提升,所以 sizeof(c) 是4个字 节.
表达式 -c 也会发生整形提升所以 sizeof(-c) 是4个字节
但是 sizeof(c) ,就是1个字节
2.2算术转换 如果某个操作符的各个操作数属于不同的类型那么除非其中一个操作数的转换为另一个操作数的类 型否则操作就无法进行。下面的层次体系称为寻常算术转换。 如果某个操作数的类型在上面这个列表中排名较低那么首先要转换为另外一个操作数的类型后执行运算。
但是算术转换要合理要不然会有一些潜在的问题。
float f 3.14;
int num f;//隐式转换会有精度丢失 感谢您的支持以上便是今天全部内容希望对你有所帮助。