语句的分类
在C++中,语句总共有6种:声明语句、定义语句、表达式语句、指令语句、预编译语句和注释语句。其中的声明语句下篇说明,预编译语句将在另文中说明,而定义语句就是前面已经见过的定义变量,后面还将说明定义函数、结构等。表达式语句则就是一个表达式直接接一个“;”,如:34;、a = 34;等,以依靠操作符的计算功能的定义而生成相应的关于内存值操作的代码。注释语句就是用于注释代码的语句,即写来给人看的,不是给编译器看的。最后的指令语句就是含有下面所述关键字的语句,即它们的用处不是操作内存,而是实现前面说的“什么样的情况”。
这里的声明语句、预编译语句和注释语句都不会转换成机器代码,即这三种语句不是为了操作电脑,而是其他用途,以后将详述。而定义语句也不一定会生成机器代码,只有表达式语句和指令语句一定会生成代码(不考虑编译器的优化功能)。
还应注意可以写空语句,即;或{},它们不会生成任何代码,其作用仅仅只是为了保证语法上的正确,后面将看到这一点。下面说明注释语句和指令语句——跳转语句、判断语句和循环语句(实际不止这些,由于异常和模板技术的引入而增加了一些语句,将分别在说明异常和模板时说明)。
注释语句——//、/**/
注释,即用于解释的标注,即一些文字信息,用以向看源代码的人解释这段代码什么意思,因为人的认知空间和电脑的完全不同,这在以后说明如何编程时会具体讨论。要书写一段话用以注释,用“/*”和“*/”将这段话括起来,如下:
long a = 1; a += 1; /* a放的是人的个数,让人的个数加一 */ b *= a; /* b放的是人均花费,得到总的花费 */ | 上面就分别针对a += 1;和b *= a;写了两条注释语句以说明各自的语义(因为只要会C++都知道它们是一个变量的自增一和另一个变量的自乘a,但不知道意义)。上面的麻烦之处就是需要写“/*”和“*/”,有点麻烦,故C++又提供了另一种注释语句——“//”:
long a = 1; a += 1; // a放的是人的个数,让人的个数加一 b *= a; // b放的是人均花费,得到总的花费 | 上面和前面等效,其中的“//”表示从它开始,这一行后面的所有字符均看成注释,编译器将不予理会,即
long a = 1; a += 1; // a放的是人的个数,让人的个数加一 b *= a; | 其中的b *= a;将不会被编译,因为前面的“//”已经告诉编译器,从“//”开始,这一行后面的所有字符均是注释,故编译器不会编译b *= a;。但如果
long a = 1; a += 1; /* a放的是人的个数,让人的个数加一 */ b *= a; | 这样编译器依旧会编译b *= a;,因为“/*”和“*/”括起来的才是注释。
应该注意注释语句并不是语句,其不以“;”结束,其只是另一种语法以提供注释功能,就好象以后将要说明的预编译语句一样,都不是语句,都不以“;”结束,既不是单句也不是复合语句,只是出于习惯的原因依旧将它们称作语句。 |