C++入门教程之一:Hello world

C++是各位程序员跳不过的一个坑,也是各位想学编程的人必备的知识,更是各大比赛(如NOI)的官方指定语言。

TIOBE(一个编程语言社区排行榜)中,截止2021年3月,C++语言排行第4(橘色那个):

今天小编就教大家入门C++语言。

1.Hello World代码

#include<iostream>
using namespace std;
int main()
{
cout << "Hello, world!" << endl;
//输出"Hello,world!"
return 0;
}

2.分析

看完代码,你也许会觉得:这是啥?(如果你不这么觉得,我建议你不用看这篇文章了)别担心,我来为你一行一行的分析一下。

第一行

#include<iostream>

通过CSDN自带的代码高亮,我们会发现,这段代码被分成了三部分:

(1) #

这个#代表这行代码是归预编译器管的。什么是预编译器呢?就是电脑在编译这段代码时,需要预先干一些事情。

比如你在写一份声明的时候,往往要写“xxxx公司(以下简称本公司)”这样的话,这样人们就知道了“本公司”指的是谁,这就是预编译器的作用。

(2) include

这是一个预编译命令。通过名字我们知道,这个命令意为“包含”,这个命令的作用是告诉预编译器要把这个命令后面所写的文件整个复制粘贴到这行命令所在的位置

(3) <iostream>

这是上面提到的预编译命令include所需的文件。在这里这个文件名是iostream,并用一对尖括号括起来。这样的文件被称作头文件,因为一般它位于文件的开头。iostream文件全称为input output stream,翻译过来是输入输出流这个文件包含了一些有关基本输入输出的函数(关于函数将在下面提到)。

第二行

using namespace std;

(1)using

using是C++的一个关键字。其使用方法是:

方法一

using namespace namespace_name;

方法二

using namespace_name::name;

在以后的学习中,我们会学习更多的关键字。using的作用是包含一个命名空间,或者一个命名空间的成员。这两个概念似乎很难理解,但其实很简单。

(2)namespace

namespace直译过来就是命名空间。什么是命名空间?有时候你想写一个东西,比如说标题叫《你好》,正巧有一篇论文也叫《你好》,这个时候一般人们会在末尾加上作者和写作年代来区分两篇文章。但是电脑没有办法区分,于是你就需要一个命名空间,两个命名空间里的名字可以重复,这样就可以防止程序遇到重名的情况而无法编译。

(3)std

std是一个命名空间,它是单词“standard”的缩写。顾名思义,这个命名空间包含了许多基础的函数。

(4);

没错,这是一个分号。别看它好像很不起眼,但它的作用很大。许多初学者在写程序时忘了加分号,有时候它会导致编译器上出现一堆错误提示,如:

那么分号有什么作用呢?分号的作用是告诉编译器这是一个语句。C++有五种执行语句,分别是控制语句、函数调用语句、表达式语句、空语句,复合语句。这里的语句属于一种特殊的语句,称为声明语句。最前面的#include<iostream>属于预编译命令,不属于语句,因此不需要加分号。

一定不要忘了在语句末尾加分号!!!

一定不要忘了在语句末尾加分号!!!

一定不要忘了在语句末尾加分号!!!

第三行

int main()

(1)int

int是一个关键字。它有两个作用,一个是定义整型变量,一个是定义或声明返回值是整型的函数。这里的int属于后者,定义了一个名为main的函数。

整型是C++的一种数据类型,其数据范围是在-232到232-1之间的整数。

(2)main

这是一个main函数。main函数是整个程序的入口。也就是说,编译器只会执行main函数里的语句。

(3)()

这个括号是C++的一个运算符,它的作用是告诉编译器这个main是一个函数,而不是变量。

第四、八行

{}

这是一对花括号,作用是告诉编译器上面这个函数的作用范围是花括号里面的内容。

第五行

cout << "Hello, world!" << endl;

(1)cout

cout是C++的一个对象,你可以认为是console output的简写。它是C++标准输入输出流的一个对象,包含在命名空间std中。它的作用是把输入输出流中的内容发送给屏幕,让屏幕显示其内容。

(2)<<

这个符号叫插入运算符,作用是将这个符号后面的内容插入到流中。

同时这个运算符还叫左移运算符,具体用法请见后面的文章。

(3)"Hello, world!"

这是一个字符串。在C++中,字符串是一个数据类型,叫做字符型。

(4)endl

endl是C++的一个对象,你可以认为是end line的简写。它是C++标准输入输出流的一个对象,包含在命名空间std中。它的作用是换行。

第六行

//输出"Hello,world!"

这是一个注释。C++中注释有两种类型,一是

//注释内容

这种方式可以把这一行中//后面的内容注释掉

二是

/*注释内容*/

这种方式可以将/**/之间的内容注释掉,它的好处是可以在注释之间换行,如

/*注释
内容*/

那么注释是什么?编译器在编译程序的时候,会自动把注释跳过,因此你在注释里写什么都没事。注释的作用是告诉你以及其他人你这段代码的作用是什么,提高代码的可读性。因此,写注释是编程的一个好习惯(当然比赛的时候不建议你这么做,因为写注释浪费时间)。

第七行

return 0;

在现代的编译器中,这一行你通常可以省略,因为编译器会帮你自动加上这一行代码。不过,某些编译器,尤其是比赛的编译器,不会这么做。因此,虽然有一些简便的方法,但是养成在main函数末尾加上return 0;的习惯永远不会错。

(1)return

return是我们学的又一个关键字。return关键字的作用是返回一个值。具体作用将在函数那里讲到。

(2)0

0被称作这个main函数的返回值。return 0;一般代表程序正常结束,但是如果你想告诉编译器程序没能正常结束,你可以使用return EOF;或者return -1;

3.总结

你看!经过这里的学习,你已经对C++语言有了一定的了解。希望大家在以后的学习中养成勤写代码的习惯,这样可以加深对C++语法的记忆。

C++入门教程之一:Hello world的更多相关文章

  1. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  2. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  3. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  4. Content Security Policy 入门教程

    阮一峰文章:Content Security Policy 入门教程

  5. gulp详细入门教程

    本文链接:http://www.ydcss.com/archives/18 gulp详细入门教程 简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优 ...

  6. UE4新手引导入门教程

    请大家去这个地址下载:file:///D:/UE4%20Doc/虚幻4新手引导入门教程.pdf

  7. ABP(现代ASP.NET样板开发框架)系列之2、ABP入门教程

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...

  8. webpack入门教程之初识loader(二)

    上一节我们学习了webpack的安装和编译,这一节我们来一起学习webpack的加载器和配置文件. 要想让网页看起来绚丽多彩,那么css就是必不可少的一份子.如果想要在应用中增加一个css文件,那么w ...

  9. 转载:TypeScript 简介与《TypeScript 中文入门教程》

    简介 TypeScript是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程.安德斯·海尔斯伯格,C#的首席架构 ...

  10. SharePoint 2013 Designer 入门教程

    SharePoint的使用中,SharePoint Designer是非常重要的工具,我们可以通过Designer设计页面.母版页,维护.管理站点,也可以定制列表表单.数据视图,设计工作流等等.下面总 ...

随机推荐

  1. 练习使用Unicorn、Capstone

    Unicorn是一个轻量级的多平台,多体系结构的CPU仿真器框架.官网:http://www.unicorn-engine.org/ Capstone是一个轻量级的多平台,多体系结构的反汇编框架.官网 ...

  2. PTA 找出不是两个数组共有的元素

    7-2 找出不是两个数组共有的元素 (20 分)   给定两个整型数组,本题要求找出不是两者共有的元素. 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤),随后是N个整数,其间以 ...

  3. java中ReentrantLock核心源码详解

    ReentrantLock简介 ReentrantLock是一个可重入且独占式的锁,它具有与使用synchronized监视器锁相同的基本行为和语义,但与synchronized关键字相比,它更灵活. ...

  4. SQL注入靶场实战-小白入门

    目录 SQL注入 数字型 1.测试有无测试点 2.order by 语句判断字段长,查出字段为3 3.猜出字段位(必须与内部字段数一致)(用union联合查询查看回显点为2,3) 4.猜数据库名,用户 ...

  5. vue 快速入门 系列 —— 侦测数据的变化 - [基本实现]

    其他章节请看: vue 快速入门 系列 侦测数据的变化 - [基本实现] 在 初步认识 vue 这篇文章的 hello-world 示例中,我们通过修改数据(app.seen = false),页面中 ...

  6. 使用Drone构建Docker映像

    使用Drone构建Docker映像 实践所用软件: Git Gogs Drone Docker 私有镜像仓库 实践链接:https://www.katacoda.com/courses/cicd/bu ...

  7. Dynamics CRM Report安装出错三

    需要删除和备份报表服务的密钥集 进入到Micorsoft SQL Server Reporting Services配置管理器 选择"加密密钥",点击"删除" ...

  8. 将 Python 打包的 exe 进行反编译

    Python 打包成 exe 之后,是否能从二进制文件中恢复出源代码?没有加密的话是可以的. 首先需要解包. 直接从 github 上下载就行:https://github.com/counterce ...

  9. 【笔记】《算法竞赛入门》习题7-3 UVa211_多米诺效应

    title: 习题7-3 UVa211_多米诺效应 date: 2021-01-29 19:08:00 categories: 算法竞赛入门 tags: 数据结构 算法 UVa 题目: 使用28个多米 ...

  10. Appium 自动化测试框架:关键字驱动+数据驱动

    1. 关键字驱动框架简介 2. 框架结构说明 3. 框架代码实现 action 包  page_action.py business_process 包 case_process.py data_so ...