【c++教程】4.1-表达式语句

本文详细介绍了C++中的语句,包括空语句、表达式语句和声明定义。表达式语句是带有分号的表达式,而声明定义则涉及如何在程序中引入和使用名字。尽管现代C++允许在任何位置定义,但关于定义的位置,程序员们有不同的偏好。此外,文章建议一次声明一个变量以避免潜在错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

语句(statement)

语句,也就是statement,是程序的一个基本的组成部分。相当于平常说的一句话,就是一个语句。在c++中,一般语句会以;作为结束。

其中,最简单的一个语句,就是空语句,它的特点是没有表达式。也就是说,一个简单的分号就是一个空语句。空语句有的时候可以用来配合循环来使用。

// 比如说,我们创建一个简单的无限循环
while (true)

// 这当然可以,但是,通常也会这样做
for (;;)

如果多用了一些空语句会怎么样呢?以我们最熟悉的第一个程序为例。

#include <iostream>

using namespace std;

int main()
{
    // 使用了很多很多个分号,这些都会被理解为空语句
	cout << "hello ";;;;;;;;
	cout << "world" << endl;;;;;;;
}

事实上并不会怎么样,和平时没什么区别,一切正常。

表达式语句

就如同题目所说的那样,表达式语句,什么是表达式语句呢?

其实很简单,之前我们提到的表达式,后边加上分号,就是一个表达式语句。

比如说,这样一个简单的语句,这是一个表达式语句吗?

int a;

一般来说,这不是一个表达式语句,这应该是一个声明语句,当然,我们其实也并不需要去纠结于它到底应该被归类于什么语句。

声明和定义

声明 declaration

定义 definition

声明就是引入一个名字,至于定义可以算是一种特殊的声明,定义是让这个名字变得足够可以使用,也就是定义了声明的声明称为定义。

所以说,在大多数情况下,我们也不需要纠结于到底是一个声明还是一个定义,因为某种意义上来说,它们是一回事,虽然名字不同,实际也确实有差别。

在c++中,声明(或者应该说是定义)可以被放在程序中的任何一个可以出现语句的地方。但是在很久以前并不是这样的,大概在几十年前,所有的定义都被要求放在程序的最前边。也就是你需要使用多少个定义,都必须先准确的写清楚,然后才可以开始使用。对于一些比较老的程序员来说,他们现在可能也仍然坚持这样一个习惯,并且认为这是很有必要的。他们认为,如果不把所有的定义都写清楚,反而需要去程序中找的话,这不是太困难了吗?但是,反对他们的人认为,把所有定义写在程序中非常好,因为用到了什么,再定义什么,就可以了,顺序阅读的时候也非常清晰,完全不需要提前定义。因此,从现在的观点来看,无论你喜欢哪一种方式,都是可以的。

需要注意的是,在c++中,同一个声明可以在不同的地方出现多次,但是定义只能出现一次。

当然,这里我要多提一句,在c++中,有一个非常有名的大师,也就是侯捷先生,他曾经分享过一个他写代码的技巧,也就是在定义的语句中,不使用缩进,这样就可以清楚的看到哪些是定义了。当然,这是一个非常好的办法,我学会了,但是并没有尝试这样使用。因为,特殊的缩进可能会破坏整体的美观,所以有的时候不愿意这样做。当然,如果你觉得侯先生的方法非常适合你的话。你可以尝试这样做。

还需要知道的是,声明变量一次可以同时声明多个,但是一次声明一个会更好一些。因为一次声明多个有出错的可能,比如之前在指针的章节中已经提到过的经典问题。

// 这是两个指针吗?
// 不是,这是一个指针和一个数字
int* p1, p2;

点击查看全部c++教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值