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++語法的記憶。
