赞
踩
原文链接:原文链接
声明:
- 本文旨在方便了解学习C++语法,切勿用于任何商业用途。
- 由于本人英语水平有限,文章中可能存在语义错误,如有疑问请参照原文,也可以在评论区指出错误。
欢迎来到这些 C++ 教程的第一章!
在本章中,我们将首先了解一些对每个 C++ 程序都至关重要的主题。因为要涵盖的主题很多,所以我们将在相当浅的层次上介绍大部分内容(仅够勉强过关)。本章的目的是帮助你理解基本的 C++ 程序是如何构造的。在本章结束时,您将能够编写自己的简单程序。
在以后的章节中,我们将重新审视这些主题中的大部分,并更详细地探讨它们。我们还将介绍建立在这些之上的新概念。
为了保持课程长度的可控性,主题可能会被拆分为多个后续课程。如果您觉得某些重要概念没有在课程中涉及,则可能会在下一课中涉及。
计算机程序是告诉计算机要做什么的指令序列。语句是一种使程序执行某些操作的指令。
语句是迄今为止 C++ 程序中最常见的指令类型。这是因为它们是 C++ 语言中最小的独立计算单元。在这方面,它们的行为很像自然语言中的句子。当我们想向另一个人传达一个想法时,我们通常会用句子(而不是随机的单词或音节)来写作或说话。在 C++ 中,当我们想让我们的程序做某事时,我们通常会编写语句。
C++ 中的大多数(但不是全部)语句都以分号结尾。如果您看到以分号结尾的行,则可能是语句。
在 C++ 等高级语言中,一条语句可以编译成许多机器语言指令。
对于高级读者
C++中有许多不同种类的语句:
1.声明声明
2.跳转语句
3.表达式语句
4.复合语句
5.选择语句(条件)
6.迭代语句(循环)
7.尝试块
当您完成本教程系列时,您将了解所有这些是什么!
在 C++ 中,语句通常被分组为称为函数的单元。函数是顺序执行的语句的集合(按顺序,从上到下)。当您学习编写自己的程序时,您将能够创建自己的函数并以任何您喜欢的方式混合和匹配语句(我们将在以后的课程中展示如何)。
规则
每个 C++ 程序都必须有一个名为main的特殊函数(全部小写字母)。
程序运行时,main里面的语句是按顺序执行的。
程序通常在函数main中的最后一条语句执行后终止(结束运行)(尽管在某些情况下程序可能会提前中止,或者之后进行一些清理)。
函数通常是为了完成特定的工作而编写的。例如,一个名为“max”的函数可能包含确定两个数字中哪个更大的语句。名为“calculateGrade”的函数可能会根据一组考试成绩计算学生的成绩。我们很快就会更多地讨论函数,因为它们是程序中最常用的组织工具。
作者注
在讨论函数时,在函数名称的末尾附加一对括号是相当常见的简写。
例如,如果您看到术语`main()`或`doSomething()`,这分别是名为`main`或`doSomething`的函数的简写。
这有助于将函数与具有名称(例如变量)的其他事物区分开来,而不必每次都写“函数”一词。
现在您已经对什么是语句和函数有了一个简要的了解,让我们回到我们的“Hello world”
程序,从高层次上更详细地了解每一行的作用。
#include <iostream>
int main()
{
std::cout << "Hello world!";
return 0;
}
第 1 行是一种特殊类型的行,称为预处理器指令。这个预处理器指令表明我们想使用 iostream
库的内容,它是 C++ 标准库的一部分,允许我们从控制台读取和写入文本。我们需要这一行以便在第 5 行使用 std::cout
。排除这一行将导致第 5 行出现编译错误,因为编译器不会知道 std::cout
是什么。
第 2 行是空白的,编译器会忽略它。该行的存在只是为了帮助使程序对人类更具可读性(通过分离#include
预处理器指令和程序的后续部分)。
第 3 行告诉编译器我们将编写(定义)一个名为main
的函数。正如您在上面了解到的,每个 C++ 程序都必须有一个main
函数,否则它将无法链接。
第 4 行和第 7 行告诉编译器哪些行是主函数的一部分。第 4 行的左花括号和第 7 行的右花括号之间的所有内容都被认为是main
函数的一部分。这称为函数体。
第 5 行是函数main
中的第一条语句,也是我们运行程序时将执行的第一条语句。std::cout
(代表“字符输出”)和<<操作符允许我们将字母或数字发送到控制台以进行输出。在这种情况下,我们向它发送文本“Hello world!”
,该文本将输出到控制台。该语句创建程序的可见输出。
第 6 行是一个返回语句。当可执行程序完成运行时,程序会向操作系统发送一个值,以指示它是否成功运行。这个特殊的 return
语句将值 0
返回给操作系统,这意味着“一切正常!”。这是程序中执行的最后一条语句。
我们编写的所有程序都将遵循这个通用模板,或者它的变体。
作者注
如果上述解释的部分(或全部)令人困惑,那么在这一点上是可以预料的。
这只是为了提供一个快速概述。后续课程将深入探讨上述所有主题,并提供大量额外的解释和示例。
你可以自己编译并运行这个程序,你会看到它向控制台输出了以下内容:
Hello world!
在英语中,句子是根据您可能在学校英语课上学到的特定语法规则构建的。例如,正常的句子以句号结尾。支配如何在语言中构造句子的规则称为句法。如果你忘记了句号并将两个句子放在一起,这是违反英语语法的。
C++ 也有一个语法:关于必须如何构造程序才能被视为有效的规则。当你编译你的程序时,编译器负责确保你的程序遵循 C++ 语言的基本语法。如果你违反了规则,当你试图编译你的程序时,编译器会报错,并给你一个语法错误。
让我们看看如果我们在“Hello world”程序的第 5 行省略分号会发生什么,如下所示:
#include <iostream>
int main()
{
std::cout << "Hello world!"
return 0;
}
随意自己编译这个格式错误的程序。
Visual Studio 会产生以下错误(您的编译器可能会生成带有不同措辞的错误消息):
c:\vcprojects\test1.cpp(6): error C2143: syntax error : missing ';' before 'return'
这告诉您在第 6 行有一个语法错误:编译器在 return
语句之前需要一个分号,但它没有找到。虽然编译器会在遇到语法错误时告诉您它正在编译的代码行,但实际上可能是在前一行的遗漏。在这种情况下,错误实际上是在第 5 行的末尾(编译器直到第 6 行才发现问题)。
编写程序时,语法错误很常见。幸运的是,它们通常很容易找到和修复,因为编译器通常会将您指向它们。只有在解决所有语法错误后,程序的编译才会完成。
您可以尝试从“Hello world”程序中删除字符甚至整行,以查看生成的不同类型的错误。尝试恢复第 5 行末尾缺少的分号,然后删除第 1、3 或 4 行,看看会发生什么。
以下测验旨在加强您对上述材料的理解。
问题 #1
什么是声明?
答:语句是计算机程序中的一条指令,它告诉计算机执行一个动作。
问题 #2
什么是函数?
答:函数是按顺序执行的语句的集合。
问题 #3
所有程序必须具有的功能名称是什么?
答:main
问题 #4
程序运行时,从哪里开始执行?
答:执行从main函数中的第一条语句开始。
问题 #5
C++ 中的语句通常以什么符号结尾?
答:分号 ( ; )
问题 #6
什么是语法错误?
答:语法错误是当您的程序违反 C++ 语言的语法规则时在编译时发生的编译器错误。
问题 #7
什么是 C++ 标准库?
答:库文件是已“打包”以在其他程序中重用的预编译代码的集合。C++ 标准库是 C++ 附带的库。它包含在您的程序中使用的附加功能。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。