新聞中心
大家好,我是梁唐。

網(wǎng)站設計制作過程拒絕使用模板建站;使用PHP+MYSQL原生開發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺管理系統(tǒng);成都做網(wǎng)站、成都網(wǎng)站制作收費合理;免費進行網(wǎng)站備案等企業(yè)網(wǎng)站建設一條龍服務.我們是一家持續(xù)穩(wěn)定運營了十年的創(chuàng)新互聯(lián)網(wǎng)站建設公司。
很多小伙伴反應想要用C++刷LeetCode,但是對于C++語法不熟悉,對于很多算法和數(shù)據(jù)結構也不夠了解。這就導致了刷題的時候需要四處查詢資料,非常的麻煩。
于是,受此鼓舞,老梁在github上新建了名叫EasyLeetCode的repo,決定將C++基礎、算法、數(shù)據(jù)結構、題解這一系列內(nèi)容全部囊括。當然這個工程巨大,老梁目前打算先從C++基礎開始,每天更新一篇。也會同步更新到公眾號。
目前更新C++基礎,文章標題會以EasyC++開頭。保持每天更新,歡迎打卡。由于文章會同步到github等平臺,所以文章會相對更偏技術博客一些,不太像是公眾號的文章。
廢話到此結束,正文開始。
我們先來看一段C++的示例代碼:
- // my first cpp file
- #include
- int main() {
- using namespace std;
- cout << "hellworld" << endl;
- return 0;
- }
這段代碼雖然很短,但幾個重要的要素都包含了,如果只是用來刷題,會發(fā)現(xiàn)基本上也只會用到這些語法。
我們一行一行來看。
注釋
首先是第一行,第一行表示的C++當中的注釋。C語言當中的/**/的多行注釋方法同樣支持,但為了避免潛在的問題,盡量使用C++類型的注釋。
include
第二行是預編譯指令include,這里的預編譯指令是一個專業(yè)名詞,表示在編譯之前預先執(zhí)行的指令。C++當中的預編譯指令有好幾種,除了include之外還有define、if、undef等等,我們后面遇到了再說。
include這個指令會引入一個源代碼文件,后面跟著的是一個包含文件名,也叫頭文件名。C語言中的頭文件以.h結尾,而C++當中兼容了C語言的頭文件,只不過將其重新命名,去掉了末尾的.h,而換成了c開頭。比如math.h文件替換成了cmath。
在這行代碼當中我們include的頭文件叫做iostream,iostream為C++的標準輸入輸出庫,用來在終端讀入或者打印文本信息。iostream可以拆開理解成io和stream,其中io表示input、output即輸入輸出,stream表示流,即使用流形式進行io。
main函數(shù)
main函數(shù)是C++程序的入口函數(shù),C++標準當中定義的main函數(shù)類型是int。返回0表示程序正常退出,所以一般我們要在main函數(shù)的最后寫上return 0。
C++的main函數(shù)通常有兩種寫法,一種是參數(shù)留空,一種是定義參數(shù)數(shù)量以及參數(shù)值。
- int main() {}
- int main(int argc, char* argv[]) {}
關于main函數(shù)的傳參方法,以及參數(shù)使用方法同樣會在之后介紹,初學者隨便使用哪一種都是一樣的。
注意,有些編譯器比如vc6.0等沒有嚴格遵循C++ Primer規(guī)范,導致支持void類型的main函數(shù)。建議放棄此類不規(guī)范的編譯器,以免代碼無法遷移,并且養(yǎng)成不好的編碼習慣。
命名空間
命名空間是C++當中的特性,用來解決大型項目名稱沖突的問題。
有可能多個程序員同時開發(fā)了getValue函數(shù),但當我們編譯運行的時候,編譯器無法知道我們究竟調(diào)用的是哪一個getValue,所以需要使用命名空間進行區(qū)分。比如A程序員將getValue放入了名為A的命名空間當中,那么當我們調(diào)用getValue的時候就需要寫成A::getValue,B程序員將它放入了名為B的命名空間中,同樣調(diào)用的時候寫成B::getValue。
然而常用的許多函數(shù)、變量都明明在std的命名空間當中,這就意味著當我們使用這類內(nèi)容的時候,都需要在前面加上std::,比如標準輸出的cout命令,需要寫成std::cout。
這會導致編碼變得繁瑣,所以C++提供了using namespace的功能,即告訴編譯器當前使用的命名空間名稱,這樣我們在調(diào)用該命名空間的內(nèi)容時,可以省略前綴。
除了using namespace之外我們也可以單獨使用using命令,例如:
- using std::cout;
- using std::cin;
cout
標準輸出工具,可以將字符串輸出在終端中。
cout本身是一個預定義的對象,它知道如何顯示字符串、數(shù)字和單個字符。<<符號表示將字符串發(fā)送給cout,由cout輸出在屏幕當中。<<符號表示了信息流動的路徑,<<符號可以多個疊加連接,比如:
- cout << "hello" << "world";
endl表示當前輸出行的結束,cout遇到endl時會重啟一行,否則則會接在同一行后面繼續(xù)輸出。
除了使用endl之外,我們也可以使用換行符來達到同樣的效果,如:
- cout << "hello" << "world\n";
C++ Primer當中建議在輸出由內(nèi)容的字符串時使用換行符,而非endl,其他情況下使用endl,而非換行符。這兩者絕大多數(shù)情況下是等價的,在一些特殊情況下可能會構成差異。
如endl確保程序繼續(xù)運行前刷新輸出,而使用"\n"則意味著有時候需要在輸入信息之后才會出現(xiàn)提示。當然這不是重點,我們遇到的概率也非常小,如果實在搞不清楚也不用糾結,統(tǒng)一使用endl也行。
本文轉載自微信公眾號「Coder梁」,可以通過以下二維碼關注。轉載本文請聯(lián)系Coder梁公眾號。
當前題目:EasyC++01,從C++示例程序說起
網(wǎng)頁路徑:http://m.5511xx.com/article/dpojjii.html


咨詢
建站咨詢
