C Primer Plus 第五章

        一、基本概念

        1)数据对象:用于存储值的数据存储区域的统称。

        C标准只有在提到上述概念时,才会用到对象这个术语

        使用变量名是标识对象的一种方法

        2)左值:用于标识特定数据对象的名称或表达式

        3)对象指的是实际的数据存储,左值是用于标识或定位存储位置的标签

        4)对于早期的C语言,提到左值意味着:

                (1)它指定一个对象,所以引用内存中的地址

                (2)它可以用在赋值运算符的左侧

        5)可修改的左值:用于标识可修改的对象。

        由于出现了const限定符,被const修饰的变量不可修改,所以现在放在赋值运算符左侧的应该是可修改的左值,当前标准建议,使用术语对象定位值

        6)右值:能赋值给可修改的左值的量,且本身不是左值。当前标准在描述这一概念时使用的是表达式的值

        7)运算对象:运算符操作的对象

        二、算术运算符

        加+、减-、乘*、除/、求模%、自增++、自减--

        1)整数除法和浮点数除法不同。

        浮点数除法的结果是浮点数。

        整数除法的结果是整数。如果计算结果有小数部分,会被丢弃,这一过程被称为趋零截断

        2)求模运算符只能用于整数

        如果求模运算符的第一个运算对象是负数,那么结果为负;如果第一个运算对象是正数,结果为正

        3)递增、递减运算符

        前缀形式:++a或--a,先递增/递减a,然后再使用a的值

        后缀形式:b++或b--,先使用b的值,然后再递增/递减b

        三、表达式和语句

        1)表达式由运算符和运算对象组成

        C语言表达式的一个最重要的特性:每个表达式都有一个值

        有赋值运算符的表达式的值赋值运算符左侧变量的值相同,例如,q = 5 * 2,这个表达式的值是10

        2)语句:是C程序的基本构建块。一条语句相当于一条完整的计算机指令。

        在C语言中,大部分语句都以分号结尾

        注意:根据C标准,声明不是语句!!

        在C语言中,赋值函数调用都属于表达式语句

        四、副作用和序列点

        1)副作用是对数据对象或文件的修改

        2)序列点是程序执行的点,在该点上,所有的副作用都在进入下一步之前发生

        五、类型砖换

        1)当类型砖换出现在表达式时,无论是unsigned还是signed的char、short都会被转换成int,如果有必要,会被转换成unsigned int。这种转换被称为升级

        2)涉及两种类型的运算,两个值会被分别转换成两种类型的更高级别

        3)在赋值表达式语句中,计算的最终结果会被转换成被赋值的变量的类型。这一过程可能会导致类型升级或降级

        4)当作为函数参数传递时,char和short会被转换成int,float会被转换成double。函数原型会覆盖自动升级

        5)如果待赋值的值与目标类型不匹配,规则如下

                (1)目标类型时无符号整型,且待赋值的值是整数时,额外的位将被忽略。例如,如果目标类型是8位的unsigned char,那么待赋值的值将会对256求模,将结果赋给目标

                (2)如果目标类型是一个有符号整型,且待赋的值是整数,结果取决于具体实现

                (3)如果目标类型是一个整型,待赋的值是一个浮点型,该行为是未定义的。

        6)强制类型转换运算符:(type)

        六、带参数的函数

        1)声明参数就创建了被称为形式参数的变量

        2)函数调用时传递的值被称为实际参数

        3)变量名是函数私有的,即在函数中定义的变量名不会和别处的相同名称发生冲突

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值