文档详情

c表达式和语句.pptx

发布:2020-02-23约1.15万字共45页下载文档
文本预览下载声明
第二章 表达式和语句;3.1 表达式 1. 表达式的概述 表达式时操作符、操作数和标点符号组成的序列,其目的时用来说明一个计算过程。 表达式可以嵌套,例如:2 + 3 + (5 * sizeof(int)) / 345。 表达式根据某些约定、求值次序、结合和优先级规则来进行计算。 所谓约定,即类型转换的约定。例如: float a; a = 5 / 2 ; 结果a得到值为2。5 /2 是整数除法取整,因为5和2都是整数,不会由于a是float型而轻易改变运算的性质。; 所谓求值次序,是指表达式中各个操作数的求值次序视编译器不同而不同。 所谓结合性,是指表达式中出现同等优先级的操作符时,该先做哪个操作的规定。例如: d = a + b – c ; //C++规定,加减法先左后右。先做a + b,其结果再减去c d = a = 3 ; //C++规定,等号先右后左。先做a = 3,其结果再赋给d 所谓优先级,是指不同优先级的操作符,总是先做优先级高的操作。例如: d = a + b * c ; // 乘法优先级比加法高。先做b * c,其结果再与a相加 2.左值和右值 左值是能出现在赋值表达式左边的表达式。左值表达式具有存放数据的空间,并且存放是允许的。例如:; int a = 3 ; //a是变量,所以a是左值 const int b = 4 ; //b是常量,所以b不是左值 显然常量不是左值,因为C++规定常量的值一旦确定是不能更改的。 右值能出现在赋值表达式的右边。左值表达式也可以作为右值表达式。例如: int a , b = 6 ; a = b ; //b是变量,所以是左值,此处作为右值 a = 8 ; //8是常量,只能作为右值,不能作为左值 3.优先级和结合性 下表包含了C++所有的操作符,共有16级优先级。 每一级中的操作符是同优先级的。;; 块(或称复合语句)是指括在一对花括号{}里的语句序列。从语法上来说,块可以被认为是单个语句。例如: if( x 9 ) { cout“The number is perfect.\n”; cout“It is larger than 9\n”; } else { cout“not larger than 9\n”; } 上面两条执行语句必须放在花括号中,因为if与else之间只能容纳一条语句,或一个语句块。而else后面的花括号则可以省略。 ;3.2 算术运算和赋值 操作符种类 C++提供了算术运算符 + , - , * , / , % 。 + , - , *是通常意义的加、减、乘法。 /对于整型数则为除法取整操作。例如:5/2得到结果2。 /对于浮点数则为通常意义的除法。例如:5.0/2.0得到结 果为2.5。 由此可见,/操作符可以对不同的数据类型进行不同的 操作。事实上, + , - , * , / , % 对不同数据类型的操作都不 同。 %只能对整型数进行操作。其操作意义为取余。例如;;x = x * y ; 缩写为: x * = y ; x = x + y ; 缩写为: x + = y ; x = x - y ; 缩写为: x - = y ; x = x / y ; 缩写为: x / = y ; x = x % y ; 缩写为: x % = y ; 3.溢出 进行算术运算时,很可能溢出结果。发生溢出是由于一个变量被赋予一个超出其数据类型表示范围的数值。数值溢出不会引起编译错误的,只要分母不为0就不会引起除0进行故障
显示全部
相似文档