C++程序设计教程(第3版通用版C++程序设计系列教材十二五普通高等教育本科国家级规划教

C++程序设计教程(第3版通用版C++程序设计系列教材十二五普通高等教育本科国家级规划教
作者: 钱能
出版社: 清华大学
原售价: 69.80
折扣价: 52.40
折扣购买: C++程序设计教程(第3版通用版C++程序设计系列教材十二五普通高等教育本科国家级规划教
ISBN: 9787302521266

作者简介

内容简介

第3章表达式和语句 程序是一些按次序执行的语句。执行语句是为了完成某个操作,修改某个数据。程序中大 部分的语句是由表达式构成的,因为表达式直截了当地返回值。正因为如此,表达式是 C++ 编译器处理的重要内容。学习本章后,要求理解表达式和语句的概念,掌握表达式中各种运 算符的功能与特点,更好地理解C++语言的强大与灵 活。 3.1表达式 1. 表达式概述 表达式是操作符、操作数和标点符号组成的序列,其目的是说明一个计算过程。 表达式可以嵌套,例如2+3+(5*sizeof(int))/345。 表达式根据某些约定、求值次序、结合性和优先级规则来进行计算。 所谓约定,即类型转换的约定。例如: float a; a=5/2; 结果a得到值为2。5/2是整数除法取整,因为5和2都是整数,不会由于a是float型而轻易改 变运算的性质。 所谓求值次序,是指以正确计算表达式值为目的,以内部优化为手段,为每个操作数规定一个计值的顺序。求值次序视编译器不同而不同,见3.9节。 所谓结合性,是指表达式中出现同等优先级的操作符时,该先做哪个操作的规定。例如: d=a+b-c;//C++规定,加减法先左后右。先做a+b,其结 果再减去c d=a=3;//C++规定,等号是先右后左。先做a=3,其 结果再赋给d 所谓优先级,是指不同优先级的操作符,总是先做优先级高的操作。例如: d=a+b*c;//乘法优先级比加法高。先做b*c,其结果再与a相加 2. 左值和右值 左值(left value,缩写为lvalue)是能出现在赋值表达式左边的表达式。左值表达式具有 存放数据的空间,并且存放是允许的。例如: int a=3;//a是变量,所以a是左值 const int b=4;//b是常量,所以b不是左值 显然常量不是左值,因为C++规定常量的值一旦确定是不 能更改的。 右值(right value,缩写为rvalue)只能出现在赋值表达式的右边。左值表达式也可以作 为右值表达式。例如: int a,b=6; a=b;//b是变量,所以是左值,此处作为右值 a=8;//8是常量,只能作右值,不能作为左值 表达式终能产生数值结果,可表示左值或右值。例如: int a; (a=4)=28;//ok:a=4是左值表达式,可以被赋以值28 void f(){return ;}//此为函数定义,该函数不返回任何值 28是右值表达式,而a=4是左值表达式(C++的语法规定) ,所以可以放在赋值语句的左边。该语句表示a的值用28替代刚刚赋给的值4。 函数定义f()本身不是表达式,它说明了一个不返回值的函数。对函数f()的调用是语句,它实 施了一个没有返回值的操作。 本 书 共 分 两 大 部 分:第 一 部 分 包 括 第 1章 ~第 10章,是 基 础 部 分,主 要 介 绍 C++ 程序设计语言、程序结构和过程化基础;第二部分包括第11章~第21章,是面向对象程序设计部分, 它建立在 C++ 程序设计基础之上,讲述了面向对象程序设计方法。 本书适合用作大学计算机专业和非计算机专业的程序设计基础课程教材,也可供自学的读者使用。