2.2 C++语句
C++程序是一组函数,而每个函数又是一组语句。C++有好几种语句,下面介绍其中的一些。程序清单2.2提供了两种新的语句。声明语句创建变量,赋值语句给该变量提供一个值。另外,该程序还演示了cout的新功能。
程序清单2.2 carrot.cpp
// carrots.cpp -- food processing program // uses and displays a variable #include <iostream> int main() { using namespace std; int carrots; // declare an integer variable carrots = 25; // assign a value to the variable cout << "I have "; cout << carrots; // display the value of the variable cout << " carrots."; cout << endl; carrots = carrots - 1; // modify the variable cout << "Crunch, crunch. Now I have " << carrots << " carrots." << endl; cin.get(); return 0; }
空行将声明语句与程序的其他部分分开。这是C常用的方法,但在C++中不那么常见。下面是该程序的输出:
I have 25 carrots. Crunch, crunch. Now I have 24 carrots.
2.2.1 声明语句和变量
要将信息项存储在计算机中,必须指出信息的存储位置和所需的内存空间。在C++中,完成这种任务的一种相对简便的方法,是使用声明语句来指出存储类型并提供位置标签。例如,程序清单2.2中包含这样一条声明语句(注意其中的分号):
int carrots; // declare an integer variable
这条语句提供了两项信息:需要的内存以及该内存单元的名称。具体地说,这条语句指出程序需要足够的存储空间来存储一个整数,在C++中用int表示整数。编译器负责分配和标记内存的细节。
完成的第二项任务是给存储单元指定名称。在这里,该声明语句指出,此后程序将使用名称carrots来标识存储在该内存单元中的值。carrots被称为变量,因为它的值可以修改,在C++中,所有变量都必须声明。如果省略了carrots.cpp中的声明,则当程序试图使用carrots时,编译器将指出错误。
程序中的声明语句叫做定义声明(defining declaration)语句,简称为定义(definition)。这意味着它将导致编译器为变量分配内存空间。在较为复杂的情况下,还可能有引用声明(reference declaration)。在C语言或Pascal中,所有时变量声明通常都位于函数或过程的开始位置,但C++没有这种限制;实际上,C++通常的做法是,在首次使用变量前前声明它。这样,就不必在程序中到处查找,以了解变量的类型。
2.2.2 赋值语句
赋值语句将值赋给存储单元。例如下面的语句将整数25赋给变量carrots表示的内存单元:
carrots = 25;
符号=叫做赋值运算符。C++(和C)可以连续使用赋值运算符。下面的代码是合法的:
int steinway; int baldwin; int yamaha; yamaha = baldwin = steinway = 88;
赋值将从右向左进行。首先,88被赋给steinway;然后,steinway的值(现在是88)被赋给baldwin;然后baldwin的值88被赋给yamaha。
程序清单2.2中的第二条赋值语句表明,可以对变量的值进行修改:
carrots = carrots - 1; // modify the variable
赋值运算符右边的表达式carrots-1是一个算术表达式。计算机将变量carrots的值25减去1,得到24。然后,赋值运算符将这个新值存储到变量carrots对应的内存单元中。
2.2.3 cout的新花样
程序清单2.2使用cout来打印变量,该变量的值是一个整数:
cout << carrots;
程序没有打印“carrots”,而是打印存储在carrots中的整数值,即25。实际上,这将两个操作合而为一了。首先,cout将carrots替换为其当前值25;然后,把值转换为合适的输出字符。
cout可用于数字和字符串。但数字25与字符串“25”有天壤之别。该字符串存储的是书写该数字时使用的字符,即字符3和8。程序在内部存储的是字符3和字符8的编码。要打印字符串,cout只需打印字符串中各个字符即可。但整数25被存储为数值,计算机不是单独存储每个数字,而是将25存储为二进制数。在打印之前,cout必须将整数形式的数字转换为字符串形式。另外,cout很聪明,知道carrots是一个需要转换的整数。
文件下载(已下载 515 次)发布时间:2014/5/29 下午2:15:47 阅读次数:3970