官术网_书友最值得收藏!

1.2 第一個C++程序

一個程序是由若干個程序源文件組成的。為了與其他語言相區分,每一個C++程序源文件都是以.cpp為擴展名的,它由編譯預處理指令、數據或數據結構定義以及若干個函數組成。接下來以例1-1的程序代碼來分析C++的基本程序結構。

例1-1

運行結果如圖1.2所示。

圖1.2 例1-1運行結果

例1-1就是一個完整的C++程序,接下來針對該程序中的部分結構做詳細講解,如圖1.3所示。

圖1.3 例1-1程序分析

1. iostream頭文件

第1行代碼是C++文件包含#include的編譯指令,稱為預處理指令。#include后面的iostream是C++編譯器自帶的文件,稱為C++庫文件,它定義了標準輸入輸出流的相關數據及操作。由于庫文件總是被放置在源程序文件的起始處,所以這些文件被稱為頭文件。在舊的標準C++中,使用的是iostream.h,現在C++標準明確提出不支持擴展名為.h的頭文件。實際上iostream和iostream.h是不同的文件,在編譯器include文件夾里它們的內容是不同的。

在例1-1第5行代碼處使用了iostream頭文件中的cout對象來輸出一行信息。此處要注意cout的用法,它的后面要跟一個插入運算符“?”,“?”后面的所有內容都會被輸出在屏幕上。如果要輸出字符串,務必要使用雙引號將其引起來,這里輸出“Hello world!”。在該條語句的結尾處,使用了一個換行符號“endl”,該符號與“\n”的區別是“endl”除了具備“\n”的換行功能外,還可以刷新緩沖區,讓數據直接寫入文件或顯示在屏幕上。

2. 命名空間

using是編譯指令,namespace是定義命名空間的關鍵字。由于iostream頭文件是C++標準組件庫,它所定義的類、函數和變量均放入命名空間std中,因此例1-1在程序文件的開始位置處指定“using namespace std;”以便能被后面的程序所使用。事實上,cout就是std中已定義的流對象,若不使用“using namespace std;”,還可以使用以下兩種方式。

顯然,使用“using namespace std;”這種方式最為簡便,但最好的方式不是用“using namespace std;”,而是用“using std::cout;”。為方便起見,本書中使用“using namespace std;”這種方式。

3. main函數

例1-1中,main表示主函數。由于每一個程序執行時都必須從main函數開始,而不管該函數在整個程序中的具體位置,因此每一個C++程序或由多個源文件組成的C++項目都有且僅有一個main函數。

在main函數代碼中,“int main()”稱為函數的函數頭。函數頭下面是用一對大括號“{}”括起來的部分,稱為main函數的函數體。函數體中包括若干條語句,每一條語句都是以分號結束。由于main函數名的前面有int,它表示main函數的返回類型是整型,因此需要在函數體中使用關鍵字return來將其后面的值作為函數的返回值。由于return語句運行后,函數體return后面的語句不再被執行,因此除非需要函數提前結束,否則return語句應寫在函數體的最后。

4. 注釋

注釋是對程序的代碼的解釋。假如不對程序進行注釋,當代碼量非常大時,很可能理不清編寫思路。C++的注釋有兩種類型:雙斜杠型和斜杠星型。

雙斜杠型注釋(也稱C++型注釋)使用方法比較簡單,如例1-1中的第5行。但如果還想注釋下一行,則必須在開頭再次寫“//”,即這種注釋只能注釋一行語句。

斜杠星型注釋(也稱C型注釋)用“/??/”表示,其中“/?”告訴編譯器忽略后面所有內容,直到發現“?/”為止,即“/?”與“?/”必須成對出現。這種形式比較煩瑣,但是它可以注釋多行語句。

主站蜘蛛池模板: 灵寿县| 隆化县| 藁城市| 蓝田县| 清水河县| 师宗县| 鞍山市| 郑州市| 阳西县| 雷山县| 攀枝花市| 鄯善县| 双江| 历史| 山阴县| 竹北市| 民丰县| 青川县| 岳阳县| 潍坊市| 昌邑市| 广德县| 封开县| 昌邑市| 会宁县| 巫溪县| 衡山县| 沭阳县| 连南| 怀化市| 贞丰县| 翼城县| 喜德县| 漳州市| 台中市| 闸北区| 庆阳市| 望都县| 亳州市| 武汉市| 绥德县|