导图社区 第五章 运算符、表达式、语句
C primer plus(第六版)中第五章节的知识点提炼(其实我写的详细),主要内容有循环简介、基本运算符、表达式与语句、带参数的函数。
社区模板帮助中心,点此进入>>
英语词性
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
法理
刑法总则
【华政插班生】文学常识-先秦
【华政插班生】文学常识-秦汉
文学常识:魏晋南北朝
【华政插班生】文学常识-隋唐五代
【华政插班生】文学常识-两宋
第五章 运算符、表达式、语句
循环简介
花括号以及被花括号括起来的部分被称为快(block)
基本运算符(operator)
赋值运算符
加法运算符
减法运算符
符号运算符
乘法运算符
除法运算符
运算符优先级
编译器的求值顺序
其他运算符
sizeof()运算符和size_t类型
求模运算符(%)
递增运算符(++)(p98)
前缀模式(++i)
使用变量i的值之前,先递增i
后缀模式(i++)
使用变量i的值之后,再递增i
递减运算符(--)
对--与++的使用不要作死
表达式与语句(比较偏于专业术语,不用太纠结)(p102)
表达式
表达式由运算符和运算对象组成
运算对象是运算符操作的对象
运算对象可以是常量、变量或者二者的组成
每个表达式都有一个值(别怀疑,连printf()函数都有值,不过这些都是犄角旮旯的知识,不用较真)
语句
以分号结尾(这是区别于表达式的地方)(这个在写程序的时候容易忘记)
最简单的语句是空语句
while语句是一种迭代语句,有时也没称为结构化语句,因为他的结构比简单的赋值表达式语句负责
副作用(犄角旮旯)
副作用是对数据对象或文件的修改
赋值运算符、递增递减运算符的主要目的其实是对表达式求值(eg.目的是求i+1),赋值、把i+1后的值赋值给i都其实是使用他们的副作用。
序列点
语句中的分号标记了一个序列点
是程序执行的点,在该点上,所有的副作用都在进入下一步之前发生
任何一个完整表达式的结束也是一个序列点(p104)
完整表达式:指这个表达式不是另一个更大表达式的子表达式
whlie(guest++ < 10)中的guest++<10 的结束就是一个序列点
对语句:y=(4 + x++)+(6 + x++) ,4 + x++不是一个完整的表达式,所以无法保证x在子表达式4 + x++求值后立即递增x. 所以对于该语句,你无法知道是在对子表达式求值后x递增(x可能递增2次)还是对所有表达式求值后在递增x(也可能只递增一次)。
复合语句
是用花括号括起来的一条或多条语句
也被称为块
若while语句中没有花括号,while语句从whlie这行运行至下一个分号算在循环中。(特别)
循环体中的缩进对编译器不起作用,只是为了让读者看的更清楚。
类型转换(p106)(使用混合类型时)
1.当涉及两种类型的运算时,两个值会分别被转换成两种类型中更高级别
2.类型级别从高到底的排序(p106)
3.在赋值表达式语句中,计算的最终结果会转换成被赋值变量的类型,这个过程会导致类型升级或降级
4.当类型转换出现爱在表达式时,无论是unsigned还是signed的char和short都会被自动转换成int。 以前的float还会自动被转换成double(目前不是这样)。由于都是从较小类型转换为较大类型,这些转换又被叫做升级。
5.当作为函数参数传递时,char和收入与会被转换成int,float会被转换成double。
强制类型转换(p108)(好用)
在某个量前面放置用圆括号括起来的类型名
圆括号和它括起来的类型名构成了强制类型转换运算符
如果带转换的值与目标类型不匹配怎么办?
1.目标类型是无符号类型(2byte),待赋的值是整数时,额外的位将会被忽略。
2.浮点数赋值给整型变量时,浮点值会被截断
3.其他情况因现实而异
带参数的函数
函数的声名(术语叫函数原型):返回值 函数名(int i)
int i 这个参数声名就是创建了被成为形式参数的变量
实参就是真实的数值,形参就是变量(eg.上述的变量i)
在函数声名中定义的函数名不会和别处的相同名称发生冲突(就是已经有了pound这个函数名,下面我定义变量的时候也把一个变量名取名为pound。)
主题