了解计算机科学的基本概念 熟悉不同类型的编程语言了解典型C++程序的开发环境用C++编写简单的计算机程序使用简单输入与输出语句熟悉基本数据类型使用算术运算符了解算术运算符的优先级编写简单的判断语句
使用多个流插入运算符称为连接(concatenating)、链接(chaining)或连续使用流插入操作。这样,就不必用多条输出语句输出多个数据。
计算可以在输出语句中进行。可以将上述语句合二为一:
cout<<"Sum is"<<integer1+integer2<<endl;
从而不需要变量sum。
右花括号告诉计算机到达了函数main的结尾。
C++的一个强大我就是用户可以生成自己的数据类型(详见第6章),然后可以告诉C++如何用>>和<<运算符输入或输出这种类型的值(称为运算符重载,见第8章)。
1.17 内存的概念
integer1、integer2和sum等变量名实际上对应于计算机内存中的地址(location)。每个变量都有名称(name)、类型(type)、长度(size)和值(value)。
在图1.6所示的加法程序中,执行下列语句时:
cin>>integer1;
用户输入的值放在C++编译器为integer1指事实上的内存地址中。假设用户输入integer1的值45,则计算机将45放在地址integer1中,如图1.7。
integer1
图1.7内存中的值
无论何时将新值放入内存地址,这个值将取代该地址中原有的值,并删除前一个值。 运行前面提到的加法程序,当执行下中句时:
cin>>integer2;
假设用户输入舋,则计算机将72放在地址integer2中,如图1.8。注意编译器不一定将这两个地址指定为内存中相邻地址。
程序取得integer1和integer2值后,它将这两个值相加,并将和放在变量sum中。下列语句:
sum=integer1+integer2;
进行加法运算,同时也删除一个值,即把integer1和integer2的和放进地址sum中时,sum原有的值丢失。计算sum之后,内存如图1.9。注意integer1和integer2的值和计算前一样,虽然这些值在计算机进行计算时使用,但并不删除。因此,从一个内存地址读取数值时,这个过程是非破坏性的。
integer1
integer2
了解计算机科学的基本概念 熟悉不同类型的编程语言了解典型C++程序的开发环境用C++编写简单的计算机程序使用简单输入与输出语句熟悉基本数据类型使用算术运算符了解算术运算符的优先级编写简单的判断语句
图1.8 两个变量值之后的内存值
integer1
integer2
sum
图1.9 计算之后的内存值
1.18 算术运算
大多数都要进行算术运算。算术运算符见图1.10,注意这里使用了许多代数中没有使用的符号。星号(*)表示乘法、百分号(%)表示求模(modulus)将在稍后介绍。图1.10所示的算术运算符都是二元运算符,即这些运算符取两个操作数。例如,表达式"integer1+integer2"包含二元运算符“+”和两个操作数integer1和integer2。
图1.10 算术运算符
整除(即除数和被除数均为整数)取得整数结果。例如,表达式7/4得1,表达式17/5得3。注意,整除结果忽略分数部分,不用取整。
C++提供求模(modulus)运算符“%”即求得整除的余数。求模运算是个整数运算符,只能使用整数操作数。表达式x%y取得x除以y的余数,这样,7%4得3,17%5得2。后面几章将介绍求模运算符许多有趣的应用。如确定一个数是否为另一个数的倍数(确定一个数为奇数或偶数是这个问题的一个特例)。
常见编程错误 1.4
对非整型操作数使用求模运算衔是个语法错误。
C++中的算术运算表达式应以直线形式在计算机中输入。这样,a除以b应输入为"a/b",使