C++入门指南及实战 第二步 HelloWorld及扩展详解

回顾

在上一节中,我们编写了如下代码,完成了 HelloWorld程序的编写:

#include<iostream>
using namespace std;int main(){cout <<"Hello World";return 0;
}

本小节将会对该代码进行讲解,并且解释一下专业名词。
在这里插入图片描述

释义

#include<iostream>
以上代码中,#include 表示引入一个头文件,头文件是一个“工具库”。当我们在编写代码时,往往会使用到一些功能,这些功能在某些头文件(工具库)中,这时通过#include这一串代码,就可以将指定的头文件(工具库)引入到当前编写的代码之中。
在 HelloWorld 程序中,需要完成的功能为在程序运行时,显示 HelloWorld、显示HelloWorld 需要使用的工具在 iostream 这个头文件中。因为#include的语法(指使用方法)为 #include<头文件名>,所以只需要将iostream 填写在尖括号中即可,写为 #include<iostream>

int main(){}
以上代码中 int main() 表示一个程序的入口,我们主要看main,int之后会详细说明。main函数整个程序只能存在一个,表示你这个程序的一个入口。计算机在执行你程序时,需要知道你程序时从哪开始的,这个main就表示你当前编写的程序要从哪里开始。main后面紧跟着一对圆括号()之后再一对花括号{},花括号内编写代码。

cout <<"Hello World";
以上代码是main入口括号中的第一句,cout表示输出,换句话说cout是显示的意思,之后两个 << 符号,紧接着是双引号加一串字符串"Hello World"。在C++中,a、b、c、d、?、【等单个字母或符号成为字符,组合在一起成为字符串,并且需要使用双引号引起来。在这里cout是显示字符串,语法为cout <<“你要显示的字符串”,如果想显示 Hello World 就写为 cout <<"Hello World";

return 0;
此代码之后将会讲解。

using namespace std;
为了防止在不同的头文件中有相同的“工具”名称,使用 命名空间 来区分这些工具是哪个区域的。例如一个学校里面有3个人叫小明,分别是六年级一班有一个小明,六年级二班有一个小明,五年级一班也有一个小明。这些小明在操场上,校长点名,叫到小明时需要添加年级班别,不然三个小明都不知道叫谁,其中这个年就班别名就像命名空间,用这个区分是不同区域的同名角色。
以上 using namespace std;表示使用命名空间 std,语法为 using namespace 命名空间名。(之后命名空间将会详细讲解)这样引入了这个命名空间则不需要使用如 std::cout 的方式使用这个个cout“工具”(我们把std当作一个区域名,cout表示这个工具)。我们可以删除 引入命名空间代码,然后使用 std::cout 方式输出:

 #include<iostream>int main(){std::cout <<"Hello World";return 0;
}

以上代码删除了std的话会报错,因为不知道你是要使用哪一个工具箱的cout输出工具:
在这里插入图片描述
如果想省略std::的话,在头文件下引入一个命名空间即可:

#include<iostream>
using namespace std;int main(){cout <<"Hello World";return 0;
}

以上的代码结构为最上部为引入头文件,接着引入一个命名空间,下面是一个main入口,在入口的花括号中编写你想要实现的代码。这个结构并不是一个完整表示的结构,在接下来的学习中将会逐步了解这个过程。

简单的来说,在编写代码时,一般皆是使用系统提供的一些“指令”,这些“指令”成为关键字,例如 cout、main、namespace等,这些关键字都有特定的作用。这些关键字的固定使用“格式”,我们称之为语法。通过制定的语法进行代码编写,最终组成了程序,完成了我们的需求。

例如以上代码,我想把 Hello World 更改为 Hello Xiaoming,只需要更换显示内容即可。代码如下:

#include<iostream>
using namespace std;int main(){cout <<"Hello Xiaoming";return 0;
}

最终是显示出我替换的内容:
在这里插入图片描述

编程提示

在C++的代码编写中,大多数语句的结尾需要使用分号表示结束。例如cout <<"Hello Xiaoming";以及 return 0;,这个是需要注意的。而且在编程中使用的特殊作用的标点符号必须是英文,很多初学者在这一步上会出现错误,迟迟得不到解决,这就是其中一个原因。并且在编写代码时,需要注意,程序要同一种风格形式进行对齐,这样会使程序清晰、可读性强,方便自己的排错和解读等。

知识点须知

本篇学习完后须了解以下知识点:
1.什么是头文件及头文件使用方式
2.命名空间及使用命名空间内的“工具”
3.什么是main?程序入口指什么
4.如何显示数据
5.大多数语句结束后使用什么表示结束
6.入口程序写在什么括号内

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2560x1600分辨率高吗_做设计还弄不清分辨率和像素之间的关系,来了解下他们是怎么换算...

许多同学都在问我关于像素的问题&#xff0c;为什么印刷时要300分辨率以上&#xff1f;网页为什么72就够了&#xff1f;做户外喷绘30&#xff0c;甚至巨幅画面20就上了。关于这些还是很多人不知道的&#xff0c;要不也不会被卖手机的忽悠&#xff0c;各大手机推销员拿着手机大声…

使用 fixture 机制重构 appium_helloworld

一、前置说明 在 pytest 基础讲解 章节,介绍了 pytest 的特性和基本用法,现在我们可以使用 pytest 的一些机制,来重构 appium_helloworld 。 appium_helloworld 链接: 编写第一个APP自动化脚本 appium_helloworld ,将脚本跑起来 代码目录结构: pytest.ini 设置: [pyt…

linux程序调试命令strace

strace命令用法详解: strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界&#xff0c;进程不能直接访问硬件设备&#xff0c;当进程需要访问硬件设备(比如读取磁盘文件&#xff0c;接收网络数据等等)时&#xff0c;必须由用户态模式切换至内核态模式&#xff0…

Tomcat相关 -- 内存设置

java内存溢出详解 一、常见的java内存溢出 1、java.lang.OutOfMemmoryError : Java heap space -- JVM Heap &#xff08;jvm 堆溢出&#xff09; JVM启动时自动设置JVM Heap的值&#xff0c;其初始空间(即 -Xms)是物理内存的1/64&#xff0c;最大空间(-Xms)不可超过物理内存。…

CoreWCF 1.0 正式发布,支持 .NET Core 和 .NET 5+ 的 WCF

CoreWCF 项目组正式发布 1.0 版本的 CoreWCF, 这是面向 .NET Core 平台的 WCF 移植版本。它支持 SOAP、NetTCP 和 WSDL 的相同实现。在代码中的使用方式于 WCF 相同&#xff0c;但是升级到使用 ASP.NET Core 作为服务宿主&#xff0c;并工作在 .NET Core 平台上。这是该项目的第…

【经典回放】多种语言系列数据结构算法:快速排序

快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过…

表头合并_多个Excel表格合并数据麻烦?试试Power Query轻松帮你解决

Hi!大家好&#xff01;欢迎来到小龙自修室&#xff01;又到了小龙分享时间&#xff01;(今天的内容有点多&#xff0c;希望各位看官一定要看到最后&#xff01;有惊喜)上一篇文字小龙和大家一起制作了一个限定数据内容录入的电子表格&#xff0c;我的表格我做主&#xff01;表格…

C++入门指南及实战 第三步 基本变量

在C编程中&#xff0c;内置了一些基本数据类型用来存储一些不同类型的值。有字符类型 char 用以存储字符&#xff0c;如a、b、c、d、-、、1、2、4、3、>、?等&#xff1b;有整形 int 用以存储整数类型&#xff0c;如1、2、3、4、5、11、111、2311等&#xff1b;有浮点类型 …

OPCServer Modbus使用和配置

一&#xff0c;安装KEPware.Enhanced.OPC.DDE.KEPServer。(PLC数据传送给KEPServer,开发的程序用OPCServer读KEPServer) 设置ip地址后面是指的plc站号&#xff0c;此处必须和plc上站号对应。否则无法接收数据。 打开quick client 查看传值情况 二.C#程序代码 引用opcdaauto.dll…

C# 创建命名管道服务器

通过创建 NamedPipeServerStream 的一个新实例&#xff0c;来创建服务器。NamedPipeServerStream 派生自基类 PipeStream&#xff0c;PipeStream 派生自 Stream 基类&#xff0c;因此可以使用流的所有功能&#xff0c;例如&#xff0c;可以创建CryptoStream 或 GZipStream&…

在香蕉派 Banana Pi BPI-M1上使用 开源 OxOffice Impress

2019独角兽企业重金招聘Python工程师标准>>> 在香蕉派 Banana Pi BPI-M1上使用 开源 OxOffice Impress 在Banana Pi BPI-M1上使用OxOffice Impress&#xff0c;該簡報大小約26MB&#xff0c;採用自動播放機制。 OxOffice提供 arm linux的版本&#xff0c;可佈署在ar…

免杀新姿势:利用线程将恶意代码注入到内存中

本文讲的是免杀新姿势&#xff1a;利用线程将恶意代码注入到内存中&#xff0c;产生存放远程攻击线程的进程在这篇文章中我不想一步一步解释我编写的C#代码&#xff0c;但是我会展示下它能够绕过杀毒软件&#xff0c;并且操作非常简单&#xff0c;而且实用。 首先说明一下&…

【经典回放】多种语言系列数据结构算法:希尔排序

【希尔排序原理】每隔sp(整数)个数即取数并判断大小,交换,先构造局部有序序列,直到sp为1,构造完整的有序序列。 给出一组数据,如下: 0 1 2 3

Java之解决散列表的冲突用开放定址法和链表法

1 问题 理想状态下&#xff0c;散列表就是一个包含关键字的固定大小的数组&#xff0c;通过使用散列函数&#xff0c;将关键字映射到数组的不同位置&#xff0c;哈希函数可以将关键字均匀的分散到数组的不同位置&#xff0c;不会出现两个关键字散列值相同&#xff08;假设关键…

python 手把手教你基于搜索引擎实现文章查重

前言 文章抄袭在互联网中普遍存在&#xff0c;很多博主都收受其烦。近几年随着互联网的发展&#xff0c;抄袭等不道德行为在互联网上愈演愈烈&#xff0c;甚至复制、黏贴后发布标原创屡见不鲜&#xff0c;部分抄袭后的文章甚至标记了一些联系方式从而使读者获取源码等资料。这…

lru算法实现 redis_使用数组与双向链表实现一个简单的LRU算法

什么是LRU算法&#xff1f;redis大家都玩过吧&#xff0c;你们好奇redis内存数据存满之后会发生什么吗&#xff1f;抛出异常&#xff1f;禁止使用&#xff1f;还是删除数据&#xff1f;其实redis设计了一种内润淘汰机制。noeviction(默认策略)&#xff1a;屏蔽写操作&#xff0…

【经典回放】多种语言系列数据结构算法:归并排序

目录 干货1:C#语言实现归并排序! 干货2:C语言实现归并排序! 干货1:C#语言实现归并排序! 一、算法 1、思想基础

Java对象和类

转自原文&#xff1a;http://www.yiibai.com/java/java_object_classes.html java是一种面向对象的语言。由于具有面向对象特性的语言&#xff0c;Java支持以下基本概念&#xff1a; 多态性继承封装抽象化类对象实例方法消息解析在本章中&#xff0c;我们将探讨类和对象这些概念…

bzoj3224 Tyvj 1728 普通平衡树题解--Treap

题面&#xff1a; Description您需要写一种数据结构&#xff08;可参考题目标题&#xff09;&#xff0c;来维护一些数&#xff0c;其中需要提供以下操作&#xff1a; 1. 插入x数 2. 删除x数(若有多个相同的数&#xff0c;因只删除一个) 3. 查询x数的排名(若有多个相同的数&…

Blazor University (18)使用 RenderFragments 模板化组件 —— 创建 TabControl

原文链接&#xff1a;https://blazor-university.com/templating-components-with-renderfragements/creating-a-tabcontrol/创建一个 TabControl 组件源代码[1]接下来我们将创建一个 TabControl 组件。这将教您如何实现以下目标&#xff1a;将数据传递到 RenderFragment 以为其…