C语言程序设计课堂总结3
这个系列是用来解决学校C语言课程的,并不适用于ACM和OI
本系列博客分为2部分,分别是 C语言程序设计笔记(网课) 和 课堂总结(线下课)
欢迎转载ssw02的博客: https://www.cnblogs.com/ssw02/p/15994555.html
C语言程序设计课堂总结3
笔记里面大多数都有了,有需要可以到寻路贴自取,这次主要补充一些知识
转义字符
什么是转义字符?反斜线后面跟一个字符或者一个代码值表示,用于表示常见的那些不能显示的ASCII字符
常见的转义字符如下:
强制类型转换
我们可以在一定范围和规则内进行数据类型的强制转换(和隐性转换相对)
例如
int a , c = 5 ; double b = 3.1415
a = (int)b ; // a = 3 强制把b转换为Int类型的值赋给了a,但b本身不变
b = (double)c // b = 5.000000
几个易混点:
-
(int)a+b 和 (int)(a+b) 不一样,强制转换成的数据类型名称一定要打括号,不然报错
-
double强制转换给int时会直接舍去小数部分,其他的可以类推
-
转换时注意数据范围大小,long long 转给 float 就可能会爆(溢出)
-
强制转换时注意有符号转为无符号会出现一定的问题如下图
转换高低级的表格如下:double为我们所接触到的最高的数据类型
这里补充一个我三年前跳过的坑,今天上课老师居然单独提了,出现下图情况时按右侧存储变量的类型存储
常见运算符以及表达式
这里补个图当做总结,其他的可以参考笔记那个系列上的内容
解释一下单目运算符、双目运算符和三目运算符:
单目,就是只对一个变量或者常量进行操作
双目,就是把一个表达式分为左右两部分来看
三目运算符,但就是把表达式分为三部分来看
优先级问题
这里附上一个优先级表格,基本够解决C语言程序设计里面所有涉及优先级的问题了
做运算的时候一定要遵循优先级,看清楚是从左到右 还是 从右到左
短路问题
位运算由于不属于表达式,并不会像例如&&这类逻辑运算符一样出现短路问题
一些习题