语句(statement)
语句,也就是statement,是程序的一个基本的组成部分。相当于平常说的一句话,就是一个语句。在c++中,一般语句会以;作为结束。
其中,最简单的一个语句,就是空语句,它的特点是没有表达式。也就是说,一个简单的分号就是一个空语句。空语句有的时候可以用来配合循环来使用。
// 比如说,我们创建一个简单的无限循环
while (true)
// 这当然可以,但是,通常也会这样做
for (;;)
如果多用了一些空语句会怎么样呢?以我们最熟悉的第一个程序为例。
#include <iostream>
using namespace std;
int main()
{
// 使用了很多很多个分号,这些都会被理解为空语句
cout << "hello ";;;;;;;;
cout << "world" << endl;;;;;;;
}
事实上并不会怎么样,和平时没什么区别,一切正常。
表达式语句
就如同题目所说的那样,表达式语句,什么是表达式语句呢?
其实很简单,之前我们提到的表达式,后边加上分号,就是一个表达式语句。
比如说,这样一个简单的语句,这是一个表达式语句吗?
int a;
一般来说,这不是一个表达式语句,这应该是一个声明语句,当然,我们其实也并不需要去纠结于它到底应该被归类于什么语句。
声明和定义
声明 declaration
定义 definition
声明就是引入一个名字,至于定义可以算是一种特殊的声明,定义是让这个名字变得足够可以使用,也就是定义了声明的声明称为定义。
所以说,在大多数情况下,我们也不需要纠结于到底是一个声明还是一个定义,因为从根本上来说,它们是一回事,虽然名字不同,实际也确实有差别。
在c++中,声明(或者应该说是定义)可以被放在程序中的任何一个可以出现语句的地方。但是在很久以前并不是这样的,大概在几十年前,所有的定义都被要求放在程序的最前边。也就是你需要使用多少个定义,都必须先准确的写清楚,然后才可以开始使用。对于一些比较老的程序员来说,他们现在可能也仍然坚持这样一个习惯,并且认为这是很有必要的。他们认为,如果不把所有的定义都写清楚,反而需要去程序中找的话,这不是太困难了吗?但是,反对他们的人认为,把所有定义写在程序中非常好,因为用到了什么,再定义什么,就可以了,顺序阅读的时候也非常清晰,完全不需要提前定义。因此,从现在的观点来看,无论你喜欢哪一种方式,都是可以的。
当然,这里我要多提一句,在c++中,有一个非常有名的大师,也就是侯捷先生,他曾经分享过一个他写代码的技巧,也就是在定义的语句中,不使用缩进,这样就可以清楚的看到哪些是定义了。当然,这是一个非常好的办法,我学会了,但是并没有尝试这样使用。因为,特殊的缩进可能会破坏整体的美观,所以有的时候不愿意这样做。当然,如果你觉得侯先生的方法非常适合你的话。你可以尝试这样做。
另外多提一句,声明一次可以使用多个,但是尽量一次声明一个会更好一些。因为一次声明多个有出错的可能,比如之前在指针的章节中已经提到过的经典问题。
// 这是两个指针吗?
// 不是,这是一个指针和一个数字
int* p1, p2;
点击查看全部c++教程
|