C++学习笔记_第三章_第二节
赋值操作
前面已介绍,对一个变量的赋值是通过赋值运算符“=”来实现的。在前面两章中已经多次用到赋值语句,由于赋值语句应用十分普遍,所以专门再讨论一下。
- C++的赋值语句具有其他高级语言(如QBASIC,Pascal,FORTRAN)的赋值语 句的功能。但不同的是:C++中的赋值号“=”是一个赋值运算符,可以写成
a=b=c=d;
它相当于
a=(b=c=d);
其作用是先将变量d的值赋给变量c,再把变量c的值赋给变量b,最后把变量b的值赋 给变量a。
而在其他大多数语言中赋值号不是运算符,上面的写法是不合法的。
- 关于赋值表达式与赋值语句的概念。其他多数高级语言没有“赋值表达式”这 一概念。在C++中,赋值表达式可以包括在其他表达式之中,例如,
if((a=b)>0)cout<<”a>0”<<endl;
按语法规定if后面的()内是一个条件,例如可以是“if(x>0)···”。现在在x的位置上换 上一个赋值表达式a=b
,其作用是:先进行赋值运算(将b的值赋给a),然后判断a是否大于0,如大于0,执行cout<<"a>0"<<endl;
。在if语句中的“a=b”不是赋值语 句而是赋值表达式,这样写是合法的。不能写成
if ( (a=b;)>0 ) cout << “a>0” << endl;
因为在if的条件中不能包含赋值语句。C++把赋值语句和赋值表达式区别开来,增加了 表达式的种类,使表达式的应用几乎“无孔不入”,能实现其他语言中难以实现的功能。
C++的输入与输出
在前面两章中,已经看到了在C++程序中方便地利用cout和cin进行输出和输入。应该说明:输入和输出并不是C++语言中的正式组成成分。C和C++本身都没有为输入和输出提供专门的语句结构。在C语言中,输入和输出的功能是通过调用scanf函数和printf函数来实现的,在C++中是通过调用输入输出流库中的流对象cin和cout实现的。也就是说,输入输出不是由C++本身定义的,而是在编译系统提供的I/O库中定义的。
C++的输出和输入是用“流”(stream)的方式实现的。“流”指的是来自设备或传给 设备的一个数据流。数据流是由一系列字节组成的,这些字节是按进入“流”的顺序排列 的。cout是输出流对象的名字,cin是输入流对象的名字,“<<”是流插入运算符**(也可 称流插入操作符),其作用是将需要输出的内容插入到输出流中,默认的输入设备是显示 器。“>>”是流提取运算符**,其作用是从默认的输入设备(一般为键盘)的输入流中提取 若干个字节送到计算机内存区中指定的变量。下两图表示C++通过流进行输 入和输出的过程。
有关流对象cin,cout和流运算符的定义等信息是存放在C++的输入输出流库中的,因此如果在程序中使用cin,cout和流运算符,就必须使用预处理指令把头文件stream包含到本文件中:
#include
从这一点也可以看出,cin和cout不是C++本身提供的语句,因为使用C++本身提供的语句(如赋值语句、if语句、for语句等)时,是不需要用#include指令包含有关头文件的。
尽管cin和cout不是C++本身提供的语句,但是在不致混淆的情况下,为了叙述方便,常常把由cin和流提取运算符“>>”实现输入的语句称为输入语句或cin语句,把由cout和流插入运算符“<<”实现输出的语句称为输出语句或cout语句。根据C++的语法,凡是能实现某种操作而且最后以分号结束的都是语句。
因此,在阅读书刊或讨论问题时,当谈到输入语句或输出语句时,我们应当对它们的含义有准确的理解。
结束语
由于篇幅原因,有关C++输入流与输出流的基本操作等相关内容,将在下章呈现。快速跳转到下一篇文章C++学习笔记_第三章_第三节