C++面向对象第二章:表达式运算后a的值详解

需积分: 10 1 下载量 179 浏览量 更新于2024-07-14 收藏 285KB PPT 举报
在C++面向对象编程的第二章中,主要讨论了数据类型、运算符和表达式的概念。本章的重点在于理解C++中的基本数据类型,如整型、字符型、浮点型和布尔型,这些数据类型决定了变量所占的存储空间、数值范围和精度。学习者需要掌握如何使用和操作这些数据类型,包括基本运算符(如算术运算符、赋值运算符、关系运算符等)和复合表达式。 1. 表达式运算举例: - (1) `a += a`:将a的当前值与a的值相加,然后将结果赋给a,如果初始值a=12,最终a=12+12=24。 - (2) `a -= 2`:a减去2,12-2=10。 - (3) `a *= 2+3`:a乘以2+3的结果,12*(2+3)=12*5=60。 - (4) `a /= a + a`:a除以a加上a的结果,12/(12+12)=12/24=0.5。 - (5) `a %= (5%2)`:取余运算,5除以2的余数(1)再赋给a,12%1=0。 - (6) `a += a -= a *= a`:这个表达式顺序执行,先a=a*(a-=a),即a=12*(12-12)=12*0=0,然后再a+=0,所以a不变。 - (7) `a = 5 + (c = 6)`:c被赋值为6,然后a被赋值为5+6=11。 - (8) `a = (b = 4) + (c = 6)`:同样,b和c分别被赋值,a最终为4+6=10。 - (9) `a = (b = 10) / (c = 2)`:b被赋值10,c被赋值2,a被赋值10/2=5。 - (10) `(a = 3.5) = 4 * 3`:这是一个错误的赋值表达式,因为不能直接赋值给一个已经赋值的表达式。 - (11) `a = b = (c = a + 6)`:c先被赋值为a(假设a=12)的值加6,然后b和a都被赋值为这个新的c值。 2. 左值表达式与运算符优先级: - `5%=2;`:这里5%2的结果赋值给5,5可能被更新为1。 - `5 = a;`:这个语句尝试将a的值赋给5,但如果没有明确的变量a的声明或初始化,会出错,因为C++需要先定义变量才能赋值。 3. 类型转换: C++允许不同类型之间的转换,但需要注意数据精度损失和溢出问题。例如,将浮点数赋给整数类型时,小数部分会被截断。 总结来说,本章的学习旨在帮助读者理解和掌握C++的基础语法,包括数据类型的使用、运算符的优先级和作用,以及如何通过表达式来处理和操作变量。这对于编写有效的C++程序至关重要。