【C/C++】C/C++编程——第一个 C++ 程序:HelloWorld
第一个 C++ 程序:HelloWorld
大家好,我是 shopeeai,也可以叫我虾皮,中科大菜鸟研究生。昨天我们成功搭建好了 C++ 的开发环境,今天我们来介绍一下第一个 C++ 程序,打印一个"hello world"。首先我们先贴一下示例代码和运行结果,然后再逐行讲解一下这段代码。
示例代码
//这是第一个C++程序
#include<iostream>
using namespace std;int main()
{ cout << "hello world" << endl;return 0;
}
运行结果
可以看到终端中成功输出了我们想要打印的文字"hello world"。
首先分析一下第一行,//这是第一个C++程序,
这是注释行。
在 C++ 中,注释是用来解释代码的文本,它们对程序的编译和执行没有影响。C++ 提供了两种主要的注释方式:单行注释和多行注释。
-
单行注释:使用两个斜杠
//
标记。编译器会忽略从//
开始到该行末尾的文本。单行注释通常用于对代码行或代码块进行简短的说明。示例:
// 这是一个单行注释
cout << "Hello World"; // 在代码行的末尾添加注释
-
多行注释 :也称为块注释,使用
/*
开始和*/
结束。这种注释可以跨越多行,用于解释复杂的代码段或提供详细的信息。在/*
和*/
之间的所有内容都将被编译器忽略。示例:
/* 这是一个多行注释的示例它可以跨越多行。这些行都不会影响程序的编译和执行。
*/
cout << "Hello World";
注释可以帮助其他开发者理解代码的目的和工作原理,也可以帮助调试过程中排除错误。在一些高级场景中,注释(特别是多行注释)还可以用于自动生成文档。
第二行 #include<iostream>
,在 C++ 程序中,#include<iostream>
是一个预处理指令,用于在编译之前包含标准输入输出流库(iostream)。预处理指令是在编译阶段之前执行的指令,它们通常用于包含(include)文件、条件编译等。在这种情况下,#include
用于包含或插入指定的文件内容。iostream
是一个标准库文件,它是 C++ 标准库的一部分。尖括号 < >
表示这是一个标准库文件,编译器会在标准库的目录中查找它。
iostream
库包含了处理输入和输出的功能,主要通过提供输入输出流对象,例如 cin
、cout
、cerr
和 clog
。
总结一下,#include<iostream>
使 C++ 能够使用标准输入输出流进行基本的输入输出操作,也就是包含了这个库之后,我们就可以把"hello world"输出到屏幕上。
第三行,using namespace std;
是一个使用指令,它告诉编译器使用标准命名空间(std
)。using 是一个 C++ 关键字,用于引入命名空间中的名称。namespace 是一个 C++ 关键字,用于指定一个命名空间。命名空间是一种封装名字的方式,用于避免名称冲突。std 这是 C++ 标准库中定义的命名空间。标准库的许多功能(如输入输出流、字符串、容器等)都定义在这个命名空间中。
当使用 using namespace std;
后,可以直接使用定义在 std
命名空间中的名称(如 cout
, cin
, vector
, string
等),就不需要在每个名称前添加 std::
前缀了。没有这个指令,你需要写 std::cout
来调用标准输出流。使用了这个指令后,就可以直接写 cout
了。
第四行为空行,第五行,int main
**()**是一个特殊的函数,它是程序执行的入口点。任何一个 C++ 程序的执行都从 main
函数开始的。 int
表示整型,在这里用来指定 main
函数返回一个整数给操作系统。这个返回值通常用来表示程序的退出状态:0
表示成功,非零值表示错误或异常情况。
main()
是函数的名称和参数列表。在这个例子中,main
函数没有接受任何参数(空的括号 ()
意味着没有参数)。在某些情况下,main
函数可以接受参数,用于处理命令行参数。这种情况下,函数签名可能会是 int main(int argc, char *argv[])
,其中 argc
表示命令行参数的数量,argv[]
是一个指向参数字符串的指针数组。
第六行,第九行,{}
用于定义一个代码块的开始和结束。
第七行,cout << "hello world" << endl;
这行代码的作用是在控制台上输出字符串 “hello world”,然后换行。它是 C++ 中的一个标准输出语句,用于将文本信息输出到控制台。cout 是 C++ 中的一个标准输出流对象,用于将数据发送到标准输出,一般就是屏幕。<<
是一个插入操作符。它用于将右侧的数据传送到左侧的输出流中。这个操作符可以被多次连续使用,以便在单个语句中输出多个项。
"hello world"
表示的就是我们想要显示在屏幕的内容。endl
这是一个特殊的输出流操纵符,用于在输出流中插入一个换行符,然后刷新(清空)输出缓冲区,这样就可显示内容之后换行。与 endl
类似,也可以使用 \n
来插入换行符,但 \n
不会刷新输出缓冲区。
第八行,return 0;
通常出现在程序的 main
函数的末尾,表示程序的正常结束,并向告诉操作系统。return
是一个关键字,用于从函数返回一个值。在 main
函数中,return
语句指定了程序的退出状态。返回值 0
表示程序的正常终止或成功执行。这是一种约定,表示程序没有错误地执行完所有操作。如果返回的是非零值,则通常表示程序遇到了某种错误或异常情况。不同的非零返回值可以用来表示不同类型的错误。
相关文章:

【C/C++】C/C++编程——第一个 C++ 程序:HelloWorld
第一个 C 程序:HelloWorld 大家好,我是 shopeeai,也可以叫我虾皮,中科大菜鸟研究生。昨天我们成功搭建好了 C 的开发环境,今天我们来介绍一下第一个 C 程序,打印一个"hello world"。首先我们先贴一下示例代…...

扩散视觉反事实算法 DVC:对抗性鲁棒分类器 + 扩散模型,跨模态对比原始的 fundus 图 VS 生成的 OCT 图
对抗性鲁棒分类器 扩散模型:为 正常的 fundus 和 OCT 图,生成更多病症图 解决问题创新点 效果调参技巧总结Fundus 转 OCT(只是猜想,不一定)1. 疾病特征模拟2. 数据增强3. 疾病进展模拟4. 跨模态学习 解决问题 论文&a…...

C++(6) 继承
文章目录 继承1. 继承1.1 什么是继承1.2 C 继承方式1.2.1 基本案例1.2.2 继承权限组合1.2.3 继承中构造函数的说法1.2.4 继承中析构函数的执行顺序1.2.5 继承中变量名称冲突问题1.2.6 继承中函数【重写】 继承 1. 继承 1.1 什么是继承 面向对象程序设计中最重要的一个概念是继…...

【Servlet】Smart Tomcat插件简化Servlet开发流程及解决常见问题
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【Servlet】 本专栏旨在分享学习Servlet的一点学习心得,欢迎大家在评论区交流讨论💌 目录 一、Smart Tomcat插件二…...
解决Qt连接不上mysql数据库
问题: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7 下载网盘中的三个文件(网盘链接在文章结尾):qsqlmysql.dll、qsqlmysqld.qll、libmysql.dll找到你安装Qt的目录ÿ…...

kubernetes-快速部署一套k8s集群
1、前置知识点 1.1 生产环境可部署Kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式: kubeadm Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。 二进制包 从github下载发行…...

Windows Server 安装 Docker
一、简介 Docker 不是一个通用容器工具,它依赖运行的 Linux 内核环境。Docker 实质上是在运行的 Linux 服务器上制造了一个隔离的文件环境,所以它执行的效率几乎等同于所部署的 Linux 主机服务器性能。因此,Docker 必须部署在 Linux 内核系统…...

智能分析网关V4智慧机房:视频AI智能安全监管方案
一、背景分析 随着互联网的迅猛发展,机房及其配套设施的数量持续攀升,它们的运行状况对于企业运营效率和服务质量的影响日益显著。作为企业信息化的基石,机房的安全监测与管理的重要性不容忽视。它不仅关乎企业的稳定运营,同时也直…...

一些反序列化总结
1 反序列化漏洞原理 如果反序列化的内容就是那串字符串,是用户可以控制的(即变量的值),且后台不正当的使用了PHP中的魔法函数,就会导致反序列化漏洞,可以执行任意命令。Java 序列化指 Java 对象转换为字节序…...
分披萨(100%用例)C卷(JavaPythonC++Node.jsC语言)
“吃货”和“馋嘴”两人到披萨店点了一份铁盘(圆形)披萨,并咐店员将披萨按放射状切成大小相同的偶数扇形小块。但是粗心服务员将披萨切成了每块大小都完全不同奇数块,且肉眼能分辨出大小。 由于两人都想吃到最多的披萨,他们商量了一个他们认为公平的分法:从“吃货开始,轮流…...
SQL字符串截取函数【简笔记】
MySQL提供了多种字符串函数来处理和截取字符串。下面是一些常用的字符串截取函数及其使用示范: SUBSTRING(str, pos, len) str 是要截取的字符串。pos 是开始截取的位置。len 是截取的长度。 示例: SELECT SUBSTRING(Hello, World!, 8, 5); -- 结果: "World…...

会话技术复习笔记
一.登录校验的需求 什么是登录校验? 所谓登录校验,指的是我们在服务器端接收到浏览器发送过来的请求之后,首先我们要对请求进行校验。先要校验一下用户登录了没有,如果用户已经登录了,就直接执行对应的业务操作就可以…...

我用Rust开发Rocketmq name server
我是蚂蚁背大象(Apache EventMesh PMC&Committer),文章对你有帮助给Rocketmq-rust star,关注我GitHub:mxsm,文章有不正确的地方请您斧正,创建ISSUE提交PR~谢谢! Emal:mxsmapache.com 1. Rocketmq-rust namesrv概述 经过一个多月的开发,终…...

【Deep Dive: Al Webinar】开源人工智能中赋能、透明性和可重复性三者之间的关系...
【深入探讨人工智能】网络研讨系列总共有 17 个视频。我们按照视频内容,大致上分成了 3 个大类: 1. 人工智能的开放、风险与挑战(4 篇) 2. 人工智能的治理(总共 12 篇),其中分成了几个子类&…...

将Html页面转换为Wordpress页面
问题:我们经常会从html源码下载网站上获得我们想要的网站内容框架,以及部分诸如联系我们,About 等内页,但是在文章的发布上,则远不如Wordpress简便。而Wordpress尽管有各种模板,但修改又比较麻烦。解决方法…...
Next.js 学习笔记(七)——样式
样式 Next.js 支持不同的应用程序样式设计方法,包括: 全局 CSS:对于有传统 CSS 使用经验的人来说,使用简单且熟悉,但随着应用程序的增长,可能会导致 CSS 包过大,难以管理样式。CSS 模块&#…...

金线检测步骤
半导体行业,金线检测是必不可以少的一个检测项,除了焊点,die面,手指以外的必检项目. 重难点在于金线的提取,算法多种多样,找到适合才是关键,涉及到打光,图像处理,这里不做深入分析,软件和硬件配合好才能做的最好. 经典算法Block分析,结合图像检测. 高斯算法提取 边缘检测算法提…...

电池-电量监测基础知识
一、为何要进行电池电量监测 不知各位有没有想过为何现在手机电池和笔记本电脑电池不容易鼓包了?十年前还经常出现的电池鼓包最近像是消失了一样,其实是因为随着电量监测技术的发展,哪怕是最基本的电子设备也有电池侧和产品侧至少两级电量监测…...

西瓜书学习笔记——层次聚类(公式推导+举例应用)
文章目录 算法介绍实验分析 算法介绍 层次聚类是一种将数据集划分为层次结构的聚类方法。它主要有两种策略:自底向上和自顶向下。 其中AGNES算法是一种自底向上聚类算法,用于将数据集划分为层次结构的聚类。算法的基本思想是从每个数据点开始࿰…...

深度视觉目标跟踪进展综述-论文笔记
中科大学报上的一篇综述,总结得很详细,整理了相关笔记。 1 引言 目标跟踪旨在基于初始帧中指定的感兴趣目标( 一般用矩形框表示) ,在后续帧中对该目标进行持续的定位。 基于深度学习的跟踪算法,采用的框架包括相关滤波器、分类…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...