C++基本语法
前言
相信你已经看完前面一节的内容了,如果还有不熟悉的地方,可以再去温故一下面向对象与面向过程,本节我将正式开始讲解关于C++的内容,废话不多说,我们正式开始吧!
C++基本语法
C++ 程序可以看作是由一组对象组成的,每个对象都有自己的特性和行为。这些对象通过互相调用方法来交流。现在让我们用简单的方式理解一下类、对象、方法和实例变量。
对象
- 对象就像是生活中的实物,它既有特性,也有行为。
- 比如:一只狗。
- 特性:颜色(白色)、名字(小白)、品种(牧羊犬)。
- 行为:摇尾巴、叫、吃东西。
- 在程序中,对象是根据类创建出来的“实例”。
- 比如:一只狗。
- 对象就像是生活中的实物,它既有特性,也有行为。
类
- 类可以看作是创建对象的“设计图”或者“模板”。
- 比如,“狗”这个类就描述了所有狗的共性(颜色、名字、品种)和它们可以做的事(摇尾巴、叫、吃东西)。
- 具体的狗(如小白、小黑)就是从这个类生成的对象。
- 类可以看作是创建对象的“设计图”或者“模板”。
方法
- 方法就是对象可以执行的“动作”或者“功能”。
- 对狗来说,方法可以是“叫”(bark())、“吃”(eat())。
- 方法中包含程序逻辑,定义了对象可以做的事情。
- 方法就是对象可以执行的“动作”或者“功能”。
实例变量
- 实例变量是对象的“特性值”,每个对象都有自己的值。
- 比如,狗类中可能有变量“颜色”、“名字”。小白的颜色是白色,名字是“小白”;而小黑的颜色是黑色,名字是“小黑”。这些特性值存储在实例变量中,决定了对象的状态。
- 实例变量是对象的“特性值”,每个对象都有自己的值。
总结
把类比作“模板”,对象是根据模板创建的“具体实例”,方法定义了对象的“行为”,而实例变量存储了对象的“特性值”。通过这种方式,我们可以用编程模拟真实世界中的事物和它们之间的交互。
C++ 程序结构
让我们看一段简单的代码,可以输出单词 Hello World
1 |
|
接下来我们讲解一下这个程序:
头文件
<iostream><iostream>是一个标准库,提供输入输出功能。- 在这个程序中,它允许我们使用
cout输出信息到屏幕上。
using namespace std;- 告诉编译器我们要使用标准命名空间
std。 - 这样,我们可以直接写
cout而不用每次都写成std::cout。
- 告诉编译器我们要使用标准命名空间
单行注释
//- 以
//开头的部分是注释,它的作用是让程序员记录说明,编译器会忽略这些内容。 - 比如
// main() 是程序的开始,是为了帮助人类理解程序的结构。
- 以
主函数
int main()main()是程序的入口点,每个 C++ 程序都需要这个函数。- 程序从这里开始运行。
输出语句
cout << "Hello World";cout是 C++ 用来输出信息到屏幕的工具。- 这句代码会在屏幕上打印
Hello World。
return 0;- 这句话的意思是:程序运行结束,并返回一个值
0给系统。 - 在 C++ 中,返回
0通常表示程序正常结束。
- 这句话的意思是:程序运行结束,并返回一个值
编译 & 执行 C++ 程序
接下来让我们看看如何把源代码保存在一个文件中,以及如何编译并运行它。下面是简单的步骤:
编写代码
- 打开一个文本编辑器,比如记事本或代码编辑器(如 VS Code、Sublime Text)。
- 将前面写好的代码粘贴进去。
保存文件
- 将文件保存为
hello.cpp(扩展名必须是.cpp,表示这是一个 C++ 程序)。
- 将文件保存为
打开命令提示符
- 在 Windows 系统中,可以通过按下
Win + R,输入cmd打开命令提示符。 - 使用
cd命令进入保存hello.cpp文件的文件夹。
例如,如果文件在桌面上:1
cd Desktop
- 在 Windows 系统中,可以通过按下
编译代码
- 输入以下命令,按下回车:
1
g++ hello.cpp
- 如果代码没有错误,编译器会生成一个可执行文件,默认命名为
a.exe(在 Windows 中)或a.out(在 Linux/macOS 中)。
- 输入以下命令,按下回车:
运行程序
- 在命令提示符中输入以下命令,运行生成的可执行文件:
1
2a.exe # Windows 系统
./a.out # Linux/macOS 系统 - 你将看到屏幕上显示
Hello World。
- 在命令提示符中输入以下命令,运行生成的可执行文件:
补充说明:
- 什么是编译?
编译是将我们写的 C++ 代码转换成机器能理解的二进制文件(可执行文件)的过程。 - 为什么需要编译?
计算机只能理解二进制代码,因此必须先将源代码“翻译”成计算机语言,才能运行。
通过以上步骤,你的第一个 C++ 程序就成功运行了!
C++ 中的分号 & 语句块
在 C++ 中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束
分号的作用
分号是语句结束的标志:
- 每条C++语句都需要以分号结尾,用来告诉编译器“这句话结束了”。
- 你可以把分号看成是句号,表示一个完整的逻辑结束。
示例:
下面是三条独立的语句,每条语句都以分号结束:1
2
3x = y; // 把 y 的值赋给 x
y = y + 1; // y 加 1 后赋值给 y
add(x, y); // 调用函数 add,把 x 和 y 作为参数
语句块的作用
语句块是逻辑上的一组代码:
- 使用大括号
{}将多条语句包裹在一起,这些语句作为一个整体,通常用于函数、条件语句、循环等结构中。
- 使用大括号
示例:
下面是一个语句块,它包含两条语句:1
2
3
4{
cout << "Hello World"; // 输出 Hello World
return 0; // 返回值 0
}
同一行的多个语句
C++ 不限制每行只能写一条语句:
- 你可以在同一行放置多条语句,只要每条语句以分号结束即可。
示例:
以下两种写法是等价的:1
2
3x = y;
y = y + 1;
add(x, y);等同于:
1
x = y; y = y + 1; add(x, y);
总结
- 分号:是C++的语句结束符,必须添加。
- 语句块:是一组用大括号
{}包裹的语句,用于逻辑上的分组。 - 多语句:C++允许多条语句写在一行,只需确保用分号分隔即可。
通过这些规则,你可以更灵活地组织代码。
C++ 标识符
C++ 标识符是用于命名变量、函数、类等的符号,用来帮助程序员在代码中识别不同的内容。下面是一些详细解释:
命名规则:
- 标识符必须以字母(A-Z或a-z)或下划线(_)开头。
- 后面可以跟字母、数字(0-9)或下划线的组合。
限制:
- 不能包含特殊字符,如
@、&、%等。 - C++ 区分大小写,也就是说
apple和Apple是两个不同的标识符。
- 不能包含特殊字符,如
有效的标识符示例:
mohd,zara,move_name,a_123,_temp等,符合规则。
通过这些规则,C++ 程序员可以创建各种命名来组织代码,使代码更有条理。
C++关键字
下面出了一些在 C++ 中的保留字,这些保留字不能作为常量名、变量名或其他标识符名称。
C++ Keywords
| asm | else | new | this |
| auto | enum | operator | throw |
| bool | explicit | private | true |
| break | export | protected | try |
| case | extern | public | typedef |
| catch | false | register | typeid |
| char | float | reinterpret_cast | typename |
| class | for | return | union |
| const | friend | short | unsigned |
| const_cast | goto | signed | using |
| continue | if | sizeof | virtual |
| default | inline | static | void |
| delete | int | static_cast | volatile |
| do | long | struct | wchar_t |
| double | mutable | switch | while |
| dynamic_cast | namespace | template |
若要查看完整关键字介绍可查阅:C++ 的关键字(保留字)完整介绍
三字符组
什么是三字符组?
三字符组是用三个特定字符组合来表示其他字符的一种方法,通常以??开头。这是早期为了解决一些键盘上缺少特定字符的问题而设计的。虽然现代编译器和键盘已经不需要这个功能,但它仍然是C++标准的一部分。
三字符组的常用替换规则
字符替换表
| 三字符组 | 替换 |
|---|---|
| ??= | # |
| ??/ | \ |
| ??' | ^ |
| ??( | [ |
| ??) | ] |
| ??! | | |
| ??< | { |
| ??> | } |
| ??- | ~ |
示例代码
1 |
|
输出结果
1 | Hello, World! |
三字符组的注意事项
特殊情况避免替换:
如果你需要在字符串、字符常量或者注释中保留两个连续的问号,而不被自动替换,可以用以下方式:
转义序列:”???“。
字符串拼接:”??””?”。
现代编译器支持:
Microsoft Visual C++:从2010版开始,默认不再支持三字符组。如果需要启用,可以使用命令行选项/Zc:trigraphs。
GCC编译器:仍支持三字符组,但会提示编译警告,表明这种用法已经过时。
为什么了解三字符组?
虽然三字符组在现代开发中极少使用,但在维护一些古老的代码时可能会遇到。这是一个有趣的历史遗留特性,了解它有助于更全面地理解C++语言的设计。
C++中的空格
以下是对“C++ 中的空格”更通俗易懂的解释:
空白行和空格
空白行:只有空格或注释的行称为“空白行”。C++ 编译器会自动忽略这些行,它们不会影响代码运行。
空格的作用:
- 空格不仅指空白符,还包括制表符(Tab)、换行符和注释,它们都属于“空白符号”。
- 空格帮助编译器区分不同部分,比如在
int age;这行代码中,int和age之间需要空格,这样编译器才能知道int是数据类型,age是变量名。
代码的可读性:
- 在一些地方,空格不是必需的,比如在
fruit = apples + oranges;中,fruit和=之间不强制要求空格,但适当添加空格可以让代码更清晰,便于阅读。
- 在一些地方,空格不是必需的,比如在
总结
空格让代码更易读,帮助编译器识别代码中的不同部分。虽然有些地方空格不是必须的,但为了让代码更美观,推荐合理使用空格。








