深入理解 C++ 语法:从基础知识到高级应用
C++ 语法
让我们将以下代码分解以更好地理解它:
示例
#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; }。记住:编译器会忽略空格。但是,多行使代码更易读。
- 注意:每个 C++ 语句都以分号
- 第 6 行:
return 0结束了main函数。 - 第 7 行:不要忘记添加闭合花括号
}来实际结束main函数。
省略命名空间
你可能会看到一些 C++ 程序在没有标准命名空间库的情况下运行。可以省略 using namespace std 行,并用 std 关键字替换它,后跟 :: 运算符来使用一些对象:
示例
#include <iostream>
int main() {
std::cout << "Hello World!";
return 0;
}
是否包含标准命名空间库取决于你。
C++ 输出(打印文本)
cout 对象与 << 运算符一起用于输出值/打印文本:
示例
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!";
return 0;
}
你可以添加任意多个 cout 对象。但是请注意,它不会在输出的末尾插入新行:
示例
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!";
cout << "I am learning C++";
return 0;
}
新行
要插入一个新行,你可以使用 \n 字符:
示例
#include <iostream>
using namespace std;
int main() {
cout << "Hello World! \n";
cout << "I am learning C++";
return 0;
}
提示:连续两个 \n 字符会创建一个空白行:
示例
#include <iostream>
using namespace std;
int main() {
cout << "Hello World! \n\n";
cout << "I am learning C++";
return 0;
}
另一种插入新行的方法是使用 endl 操纵符:
示例
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!" << endl;
cout << "I am learning C++";
return 0;
}
\n 和 endl 都用于换行。然而,\n 最常用。
但是,\n 究竟是什么?
换行字符 (\n) 被称为转义序列,它强制光标将其位置更改为屏幕上下一行的开头。这将导致换行。
其他有效的转义序列示例包括:
| 转义序列 | 描述 | 示例 |
|---|---|---|
\t |
创建一个水平制表符 | |
\\ |
插入一个反斜杠字符 () | |
\" |
插入双引号字符 |
C++ 注释
注释可用于解释 C++ 代码,并使其更易读。它还可以用于在测试替代代码时防止执行。注释可以是单行或多行。
单行注释
单行注释以两个正斜杠开始 (//)。
// 和行末之间的任何文本都将被编译器忽略(不会执行)。
此示例在代码行之前使用了单行注释:
示例
// This is a comment
cout << "Hello World!";
此示例在代码行末尾使用了单行注释:
示例
cout << "Hello World!"; // This is a comment
C++ 多行注释
多行注释以 /* 开始,以 */ 结束。
/* 和 */ 之间的任何文本都将被编译器忽略:
示例
/* 以下代码将在屏幕上打印 Hello World!
并且这太棒了 */
cout << "Hello World!";
单行或多行注释?
你可以自己决定使用哪种。通常,我们用 // 来进行短注释,用 /* */ 来进行长注释。
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎点赞、收藏、关注
深入理解 C++ 语法:从基础知识到高级应用的更多相关文章
- 爬虫基础---HTTP协议理解、网页的基础知识、爬虫的基本原理
一.HTTP协议的理解 URL和URI 在学习HTTP之前我们需要了解一下URL.URI(精确的说明某资源的位置以及如果去访问它) URL:Universal Resource Locator 统一资 ...
- jsp学习--基本语法和基础知识
一.JSP简单介绍 1.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于 ...
- JS基础语法---数组基础知识总结
数组: 存储一组有序的数据 数组的作用: 一次性存储多个数据 数组的定义方式: 1.构造函数定义数组: var 数组名=new Array(); 2.字面量方式定义数组: var 数组名=[]; ...
- C#基础知识1-深入理解值类型和引用类型
C#值类型和引用类型这个概念在刚学习的时候应该就知道了.但是我们并没有深入的去理解它.越是基础知识其实才是最有用的.对代码的优化,代码质量的提升都有帮助.通过整理本文章,对很多知识也起到了巩固的作用吧 ...
- TCP/IP 和HTTP 协议基础知识
来源:http://www.myhack58.com/Article/60/63/2014/50072.htm 相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过 ...
- 你不得不知的Java基础知识
本篇博客主要记录Java中面向对象的概念和Java语法的基础知识. 面向对象 什么是面向对象 面向对象是一种优秀的软件设计思想,是相对于面向过程.面向切面等设计思想的一种软件设计理念.它的核心思想是运 ...
- 深入理解python(一)python语法总结:基础知识和对python中对象的理解
用python也用了两年了,趁这次疫情想好好整理下. 大概想法是先对python一些知识点进行总结,之后就是根据python内核源码来对python的实现方式进行学习,不会阅读整个源码,,,但是应该会 ...
- php基础知识(语法与原理)
一.php简介 PHP超文本预处理器.是嵌入HTML文件中的服务器脚本程序. PHP代码标记:<?php …. ?> PHP文件的扩展名:.php PHP文件的执行:必须从域名开始访问 P ...
- mysql基础知识语法汇总整理(一)
mysql基础知识语法汇总整理(二) 连接数据库操作 /*连接mysql*/ mysql -h 地址 -P 端口 -u 用户名 -p 密码 例如: mysql -u root -p **** /* ...
- JavaSE 基础知识(常识概念 + 基础语法)问答总结/面试题 —— 讲给应届生的 Java 开源知识项目
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
随机推荐
- 【LeetCode动态规划#15】最长公共子序列II
最长公共子序列(二) 描述 给定两个字符串str1和str2,输出两个字符串的最长公共子序列.如果最长公共子序列为空,则返回"-1".目前给出的数据,仅仅会存在一个最长的公共子序列 ...
- 【Azure K8S】演示修复因AKS密钥过期而导致创建服务不成功的问题(The provided client secret keys for app ****** are expired)
问题描述 在Azure Kubernetes 服务中,创建一个Internal Load Balancer服务,使用以下yaml内容: internallb.yaml apiVersion: v1 k ...
- 【Azure 存储服务】MP4视频放在Azure的Blob里面,用生成URL在浏览器中打开之后,视频可以正常播放却无法拖拽视频的进度
问题描述 把MP4视频放在Azure的Blob里面,用生成URL在浏览器中打开之后,视频可以正常播放却无法拖拽视频的进度,这是什么情况呢? 问题解答 因为MP4上传到Azure Blob后,根据公开的 ...
- 代码随想录算法训练营第二十七天| 39. 组合总和 40.组合总和II 131.分割回文串
39. 组合总和 卡哥建议:本题是 集合里元素可以用无数次,那么和组合问题的差别 其实仅在于 startIndex上的控制 题目链接/文章讲解:https://programmercarl.com ...
- Spring Cloud跟Dubbo区别?
Spring Cloud是一个微服务框架,提供了微服务中很多功能组件,Dubbo一开始时RPC调用框架,核心是解决服务调用间的问题, Spring Cloud是一个大而全的框架,Dubbo更侧重于服务 ...
- Java实现书城项目(增删)
书城项目 登录 dao 接口:UserDao Users login(String username,String password); 实现:UserDaoImpl QueryRunner quer ...
- docker 系列
docker 系列 目录 docker 系列 一. docker 定义 1 nameSpnce 命名空间 2 cgroup 控制组 3 为什么使用容器 二. docker 安装 三 .docker 初 ...
- ohmyposh 安装 - 基于 powershell7.2.1 - 最后改成 profile自定义
今天偶然下载了 powershell7.2.1 https://mydown.yesky.com/pcsoft/468254.html 这想着 vscode也支持了,得装一个 ohmyposh的主题啊 ...
- 选择单词后 按 ctrl + space 单词发音
需求: 在ide或其他地方,经常有单词发音不是很确定,但并不要很详细 就听个单词发音. 确定快捷键: 左手单手操作,我键盘上貌似就 左边的ctrl和空格键 还没有设定 翻译软件: 使用 pc端的 欧路 ...
- 【easy52pojie】一款方便看吾爱论坛帖子的爬虫程序
众所周知吾爱论坛一页最多显示十来条回帖,且间隔很大,每页的信息密度太低了.在帖子很庞大的情况下,一页一页翻页,着实有点痛苦. 故简单敲敲代码,使用request xpath技术做了一个论坛帖子回复查看 ...