广州网站搭建哪家好,有域名没有服务器怎么做网站,信阳企业网站建设,wordpress+相亲主题前言#xff1a;本节重点介绍操作符的使用#xff0c;如#xff0c;优先级高低、类型转换等 一、逻辑操作符
前言#xff1a;逻辑操作符包括逻辑与#xff08;#xff09;和逻辑或#xff08;||#xff09;#xff0c;操作对象#xff1a;两个
1.逻辑与本节重点介绍操作符的使用如优先级高低、类型转换等 一、逻辑操作符
前言逻辑操作符包括逻辑与和逻辑或||操作对象两个
1.逻辑与
1定义
的字面意思就是并且。如AB需要A和B同时成立整体才成立。
2图形解释 0表示假所以需要A和B同时满足条件才会执行 2.逻辑或||
1定义
||的字面意思就是或者。如A||B只需要其中一个成立整体就会成立。
2图像解析 A||B只需要满足其中一个条件即可 3.与||的应用和细节
1应用1-----用于判断的条件
题目要求0-17岁输出未成年18-30岁输出青年31-45岁输出中年人……
#includestdio.h
int main()
{//0-17岁输出未成年18-30岁输出青年31-45岁输出中年人……int age;scanf(%d,age);if (age 18)printf(未成年\n);else if (18 age age 30)printf(成年人\n);else if (age 31 age 45)printf(中年人\n);return 0;
}2应用2---细节的把控 代码1
#includestdio.h
int main()
{int i 0, a 0, b 2, c 3, d 4;i a b d;printf(a%d\nb%d\nc%d\nd%d\n,a,b,c,d);printf(%d\n,i);return 0;
}
运行结果 第一步a0就表示假的意思。 第二步ab因为a已经是假的然后才a根据符号可知已经不需要再执行b语句就已经得出结论。 第三步在条件中只需要前面的条件为假则不会再执行后面的语句如果前面为真才会接着判断后面的语句 修改代码a1
#includestdio.h
int main()
{int i 0, a 1, b 2, c 3, d 4;i a b d;printf(a%d\nb%d\nc%d\nd%d\n,a,b,c,d);printf(%d\n,i);return 0;
}
运行结果 与刚才的结果大为不同 代码2
#includestdio.h
int main()
{int i 0, a 0, b 2, c 3, d 4;i a || b || d;//或者操作符printf(a%d\nb%d\nc%d\nd%d\n,a,b,c,d);printf(%d\n,i);return 0;
}
运行结果 第一步执行a左边为假在a继续执行||右边的语句。 第二步因为b的起始值≠0所以为真不再执行||右边的语句。此时整体的表达式都为真。 第三步||操作符左边为真时不再执行右边的语句当左边为假才会继续执行或者判断右边的语句。 总结 1.操作符如果左边操作数为假右边无需计算。 2.||操作符如果左边操作数为真右边无需计算。 表达式求值有三部分隐式类型转换、算术转换和操作符的属性。 表达式求值的顺序一部分是由操作符的优先级和结合性决定。 同样有些表达式的操作数在求值的过程中可能需要转换为其他类型。 二、隐式类型转换
前言这里介绍的一般就是整型提升的内容 1.整形提升的定义 1C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度表达式中的字符和短整型操作数在使用之前被转换为普通整型这种转换称为整型提升 2操作的对象是二进制的补码
2.整形提升的条件
1整形提升就是小于整形的类型提升到整形如char类型提升到int型。
2只要字符型char和短整形short的数据参与到表达式的运算就会发生整形提升。
3整形提升是按照变量的数据类型的符号位来提升的 。 有符号数据整形提升时会根据最高位的数字来补。比如最高位是1那么就会补1补到32为比特位最高位是0则会补0 无符号数据整型提升时默认补0。 3.整形提升例子
1例子1
代码
#includestdio.h
int main()
{char a 5;char b 126;//参与到表达式的运算(ab)发生第一次整形提升char c a b;printf(%d\n,c);//第二次整形提升return 0;
}
运行结果 代码分析 2例子2
代码
#includestdio.h
int main()
{char a 0xb6;short b 0xb600;int c 0xb6000000;if (a 0xb6)printf(a);if (b 0xb600)printf(b);if (c 0xb6000000)printf(c);return 0;
}
运行结果 代码分析a和b都发生了整形提升数据发生了改变只有c不需要整形提升因此数据没有发生改变。 3例子3
代码
#includestdio.h
int main()
{char c 1;printf(%u\n, sizeof(c));printf(%u\n, sizeof(c));printf(%u\n, sizeof(-c));return 0;
}
运行结果 代码分析 总结只有在一些特定的情况下才会发生整形提升从char和short类型提升为整形有时候提升完数据大小会发生改变。 三、算术转换
1.定义
1算术转换的条件数据类型整形
2转换层次由低到高 如果某个操作数的类型在上面这个列表中排名较低那么首先要转换为另外一个操作数的类型后执行运算。
四、操作符的属性
1.作用
1用于复杂表达式的求值
2求值的三大因素 1. 操作符的优先级相邻操作符优先级高的先计算 2. 操作符的结合性从左向右计算、从右向左计算或没有结合性 3. 是否控制求值顺序逻辑操作符、三目操作符和逗号表达式 2.做法
为了避免写出一些歧义表达式所以我们要多利用括号。