C++入门教程之一:Hello world
C++是各位程序员跳不过的一个坑,也是各位想学编程的人必备的知识,更是各大比赛(如NOI)的官方指定语言。
在TIOBE(一个编程语言社区排行榜)中,截止2021年3月,C++语言排行第4(橘色那个):
今天小编就教大家入门C++语言。
1.Hello World代码
#include
using namespace std;
int main()
{
cout << "Hello, world!" << endl;
//输出"Hello,world!"
return 0;
}
2.分析
看完代码,你也许会觉得:这是啥?(如果你不这么觉得,我建议你不用看这篇文章了)别担心,我来为你一行一行的分析一下。
第一行
#include
通过CSDN自带的代码高亮,我们会发现,这段代码被分成了三部分:
(1) #
这个#
代表这行代码是归预编译器管的。什么是预编译器呢?就是电脑在编译这段代码时,需要预先干一些事情。
比如你在写一份声明的时候,往往要写“xxxx公司(以下简称本公司)”这样的话,这样人们就知道了“本公司”指的是谁,这就是预编译器的作用。
(2) include
这是一个预编译命令。通过名字我们知道,这个命令意为“包含”,这个命令的作用是告诉预编译器要把这个命令后面所写的文件整个复制粘贴到这行命令所在的位置
(3)
这是上面提到的预编译命令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
属于预编译命令,不属于语句,因此不需要加分号。
一定不要忘了在语句末尾加分号!!!
一定不要忘了在语句末尾加分号!!!
一定不要忘了在语句末尾加分号!!!
第三行
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++语法的记忆。