深入理解 C++ 语法:从基础知识到高级应用

C++ 语法

让我们将以下代码分解以更好地理解它:

示例

cpp 复制代码
#include <iostream>
using namespace std;

int main() {
  cout << "Hello World!";
  return 0;
}

示例解释

  • 第 1 行:#include <iostream> 是一个头文件库,它让我们可以使用输入和输出对象,比如 cout(在第 5 行使用)。头文件为 C++ 程序添加功能。
  • 第 2 行:using namespace std 表示我们可以使用标准库中的对象和变量名称。
  • 如果你不理解 #include <iostream>using namespace std 如何工作,不用担心。只需将其视为几乎总是出现在你的程序中的内容。
  • 第 3 行:空白行。C++ 忽略空白字符。但我们使用它来使代码更易读。
  • 第 4 行:C++ 程序中的另一个几乎总是出现的东西是 int main()。这被称为一个函数。其花括号 {} 内的任何代码都将被执行。
  • 第 5 行:cout(读作 "see-out")是一个对象,与插入运算符 << 一起用于输出/打印文本。在我们的示例中,它将输出 "Hello World!"。
    • 注意:每个 C++ 语句都以分号 ; 结束。
    • 注意:int main() 的主体也可以写成:int main() { cout << "Hello World! "; return 0; }。记住:编译器会忽略空格。但是,多行使代码更易读。
  • 第 6 行:return 0 结束了 main 函数。
  • 第 7 行:不要忘记添加闭合花括号 } 来实际结束 main 函数。

省略命名空间

你可能会看到一些 C++ 程序在没有标准命名空间库的情况下运行。可以省略 using namespace std 行,并用 std 关键字替换它,后跟 :: 运算符来使用一些对象:

示例

cpp 复制代码
#include <iostream>

int main() {
  std::cout << "Hello World!";
  return 0;
}

是否包含标准命名空间库取决于你。

C++ 输出(打印文本)

cout 对象与 << 运算符一起用于输出值/打印文本:

示例

cpp 复制代码
#include <iostream>
using namespace std;

int main() {
  cout << "Hello World!";
  return 0;
}

你可以添加任意多个 cout 对象。但是请注意,它不会在输出的末尾插入新行:

示例

cpp 复制代码
#include <iostream>
using namespace std;

int main() {
  cout << "Hello World!";
  cout << "I am learning C++";
  return 0;
}

新行

要插入一个新行,你可以使用 \n 字符:

示例

cpp 复制代码
#include <iostream>
using namespace std;

int main() {
  cout << "Hello World! \n";
  cout << "I am learning C++";
  return 0;
}

提示:连续两个 \n 字符会创建一个空白行:

示例

cpp 复制代码
#include <iostream>
using namespace std;

int main() {
  cout << "Hello World! \n\n";
  cout << "I am learning C++";
  return 0;
}

另一种插入新行的方法是使用 endl 操纵符:

示例

cpp 复制代码
#include <iostream>
using namespace std;

int main() {
  cout << "Hello World!" << endl;
  cout << "I am learning C++";
  return 0;
}

\nendl 都用于换行。然而,\n 最常用。

但是,\n 究竟是什么?

换行字符 (\n) 被称为转义序列,它强制光标将其位置更改为屏幕上下一行的开头。这将导致换行。

其他有效的转义序列示例包括:

转义序列 描述 示例
\t 创建一个水平制表符
\\ 插入一个反斜杠字符 ()
\" 插入双引号字符

C++ 注释

注释可用于解释 C++ 代码,并使其更易读。它还可以用于在测试替代代码时防止执行。注释可以是单行或多行。

单行注释

单行注释以两个正斜杠开始 (//)。

// 和行末之间的任何文本都将被编译器忽略(不会执行)。

此示例在代码行之前使用了单行注释:

示例

cpp 复制代码
// This is a comment
cout << "Hello World!";

此示例在代码行末尾使用了单行注释:

示例

cpp 复制代码
cout << "Hello World!"; // This is a comment

C++ 多行注释

多行注释以 /* 开始,以 */ 结束。

/**/ 之间的任何文本都将被编译器忽略:

示例

cpp 复制代码
/* 以下代码将在屏幕上打印 Hello World!
并且这太棒了 */
cout << "Hello World!";

单行或多行注释?

你可以自己决定使用哪种。通常,我们用 // 来进行短注释,用 /* */ 来进行长注释。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎点赞、收藏、关注

相关推荐
yaoh.wang1 小时前
力扣(LeetCode) 13: 罗马数字转整数 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·跳槽
hetao17338372 小时前
2025-12-12~14 hetao1733837的刷题笔记
数据结构·c++·笔记·算法
华仔啊2 小时前
这 10 个 MySQL 高级用法,让你的代码又快又好看
后端·mysql
椰子今天很可爱2 小时前
五种I/O模型与多路转接
linux·c语言·c++
码事漫谈3 小时前
国产时序数据库崛起:金仓凭什么在复杂场景中碾压InfluxDB
后端
上进小菜猪3 小时前
当时序数据不再“只是时间”:金仓数据库如何在复杂场景中拉开与 InfluxDB 的差距
后端
程序员zgh3 小时前
C++ 互斥锁、读写锁、原子操作、条件变量
c语言·开发语言·jvm·c++
盖世英雄酱581363 小时前
springboot 项目 从jdk 8 升级到jdk21 会面临哪些问题
java·后端
程序猿DD4 小时前
JUnit 5 中的 @ClassTemplate 实战指南
java·后端
Victor3565 小时前
Netty(14)如何处理Netty中的异常和错误?
后端