C++入門(mén)系列博客一 最初的起點(diǎn) — Hello World

最初的起點(diǎn) — Hello World


作者:AceTan,轉(zhuǎn)載請(qǐng)標(biāo)明出處!


一切的開(kāi)始

大概每個(gè)程序猿的第一個(gè)程序都是Hello World,這是夢(mèng)開(kāi)始的地方绍在。本文是C++入門(mén)系列博客的第一篇善涨,讓我們從最經(jīng)典的Hello World 開(kāi)始分苇⊥危看代碼

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello World" << endl;

    return 0;
}

現(xiàn)在让禀,我們逐行分析一下這一段經(jīng)典代碼挑社。


#include <iostream>

#include 指令用來(lái)包含程序所用到的頭文件。這里告訴編譯器想要使用的是 iostream 庫(kù), 尖括號(hào)中的名字指出了頭文件的名字巡揍。需要注意的是痛阻,#include指令和頭文件的名字必須 放在同一行。我們一般將#include指令放在源文件開(kāi)始的位置腮敌。另外阱当,一般<>引用的都是標(biāo)準(zhǔn)的庫(kù)文件,如果使用自己寫(xiě)的頭文件缀皱,一般使用"", 而非<>. 例如: #include "myHeader.h", ""之中是所要使用的頭文件位置喻犁,可以加路徑。不加路徑默認(rèn)是當(dāng)前文件路徑桶癣。關(guān)于標(biāo)準(zhǔn)輸入輸出流iostream讀者可以參看相關(guān)文檔厦章,這里不展開(kāi)講。


using namespace std;

這句代碼的意思是使用標(biāo)準(zhǔn)的命名空間钮莲。 using 關(guān)鍵字一般用來(lái)聲明某個(gè)命名空間免钻,也叫作 using 聲明(using declaration). using聲明的形式如下:

using namespace::name;

namespace叫做命名空間,命名空間的作用是避免我們名字定義沖突崔拥。舉個(gè)例子极舔,你的小名叫小明,你隔壁王叔叔的兒子小名也就小明链瓦,當(dāng)你們一起玩耍時(shí)拆魏,別人喊小明,你們就不確定喊的是誰(shuí)了慈俯,傻傻的計(jì)算機(jī)更分不清渤刃。所以就需要命名空間來(lái)指定到底喊的是誰(shuí)了,像這樣 王叔叔::小明 那就表明喊的是王叔叔家的小明了贴膘。這個(gè)::叫做作用域運(yùn)算符卖子。標(biāo)準(zhǔn)庫(kù)定義的所有名字都在命名空間std中。


int main(){}

每個(gè)C++程序必須包含一個(gè)或多個(gè)函數(shù)刑峡,其中一個(gè)必須命名為main,操作系統(tǒng)通過(guò)main來(lái)運(yùn)行C++程序洋闽,它為程序入口玄柠。 一個(gè)函數(shù)的定義分為四個(gè)部分,返回類型(return type)诫舅、函數(shù)名(function name)羽利、形參列表(parameter list)、函數(shù)體(function body). 此處返回類型為int骚勘,函數(shù)名為main铐伴,形參列表為空,函數(shù)體為{}包括起來(lái)的內(nèi)容俏讹。

main函數(shù)的返回類型必須為int当宴,即整數(shù)類型,int 類型是一種內(nèi)置類型,即語(yǔ)言自身定義的類型泽疆。

你也許表示不服户矢,我明明看過(guò)main函數(shù)的返回值可以為void的。這其實(shí)是一種不標(biāo)準(zhǔn)的做法殉疼,在VC梯浪、VS的編譯器能編譯通過(guò),但在其他標(biāo)準(zhǔn)的編譯器下瓢娜,就編譯不過(guò)了挂洛。不信你試試gcc編譯器。


cout << "Hello World" << endl;

cout 標(biāo)準(zhǔn)輸出對(duì)象眠砾,名字定義在std命名空間下虏劲。cout標(biāo)準(zhǔn)輸出(standard output),與之對(duì)應(yīng)的還有標(biāo)準(zhǔn)輸入(standard input) cin. 除此之外,比較不常用的還有cerr, clog. 顧名思義褒颈,看名字基本上就能知道它是干嘛的了柒巫。

<< 為 輸出運(yùn)算符, 這個(gè)運(yùn)算符接受兩個(gè)運(yùn)算對(duì)象,左側(cè)的對(duì)象必須是一個(gè)ostream對(duì)象谷丸,右側(cè)運(yùn)算符是要打印的值堡掏。
endl 為操縱符,表示換行刨疼。 與轉(zhuǎn)義字符"\n"是一樣的泉唁。


return 0;

main函數(shù)的返回值。

在大多數(shù)的系統(tǒng)中揩慕,main函數(shù)的返回值用來(lái)指示狀態(tài)游两,返回0表示成功,非0的返回值的含義由系統(tǒng)定義漩绵,通常用來(lái)指出錯(cuò)誤類型。

編程工具

工欲善其事肛炮,必先利其器

編程工具這東西各有所好止吐,推薦幾款宝踪,是筆者比較常用和喜愛(ài)的。

  • VS系列
  • Code::Blocks
  • Sublime Text

重量級(jí)的IDE還是力推Visual Studio碍扔,至于版本瘩燥,推薦使用VS2010及以上。個(gè)人編程的話不同,建議直接上VS2015厉膀,VS2015號(hào)稱全宇宙最強(qiáng)的IDE,各方面功能不是蓋的二拐,其他IDE望塵莫及服鹅。筆者強(qiáng)烈建議不使用VC6.0,這坑爹玩意用的根本不是標(biāo)準(zhǔn)的語(yǔ)法百新,最惡心的就是它變量的作用域了企软。VC6.0已經(jīng)被時(shí)代淘汰,雖然國(guó)內(nèi)很多教材的實(shí)例都是用VC6.0寫(xiě)的饭望。

輕量級(jí)的IDE推薦Code::Blocks,雖然功能不如VS強(qiáng)大仗哨,好在它是跨平臺(tái)的IDE,各方面功能做的也不錯(cuò)铅辞。長(zhǎng)期刷題的童鞋們可以使用看看厌漂。

如果你寫(xiě)的是小型程序,或者覺(jué)得自己足夠牛逼斟珊,不需要任何IDE苇倡,那么,我推薦這款Sublime Text編輯器了倍宾,它支持語(yǔ)法高亮雏节,Sumlime Text是程序猿最喜歡用的編輯器之一了。誰(shuí)用誰(shuí)知道高职。上個(gè)圖感受一下钩乍。

Sublime Text

當(dāng)然,如果你是Linux用戶怔锌,并長(zhǎng)期使用Vim寥粹,那么我覺(jué)得,很難再有編輯器入的了你的法眼了埃元。

書(shū)籍推薦:

對(duì)涝涤,你沒(méi)看錯(cuò),我就推薦這一本岛杀。學(xué)習(xí)完并掌握這本書(shū)的知識(shí)點(diǎn)阔拳,找個(gè)C++相關(guān)編程工作完全沒(méi)有問(wèn)題。這本書(shū)基本上是C++中圣經(jīng)級(jí)別的存在了类嗤,而且糊肠,它還比較適合初學(xué)者辨宠。學(xué)習(xí)C++的首選,它包羅萬(wàn)象货裹,還可以當(dāng)工具書(shū)來(lái)翻閱嗤形。C++程序猿基本上人手一本。

黑魔法

如果你覺(jué)得上面的程序足夠簡(jiǎn)單弧圆,根本不屑一顧赋兵,那么看下面兩個(gè)Hello World,是否會(huì)覺(jué)得眼前一亮呢搔预?

  1. 外星人說(shuō)的"Hello World".

     #include <iostream>
     
     using namespace std;
     
     void alien_say(char * p)
     {
         while (putchar(*(p += *(p + 1) - *p)));
     }
     
     int main()
     {
         return alien_say("BETHO! Altec oh liryom(a loadjudas!) dowd."), 0;
     }
    
  2. 預(yù)處理迭代的"Hello World"

     #define _________ } 
     #define ________ putchar 
     #define _______ main 
     #define _(a) ________(a); 
     #define ______ _______(){ 
     #define __ ______ _(0x48)_(0x65)_(0x6C)_(0x6C) 
     #define ___ _(0x6F)_(0x2C)_(0x20)_(0x77)_(0x6F) 
     #define ____ _(0x72)_(0x6C)_(0x64)_(0x21) 
     #define _____ __ ___ ____ _________ 
     #include<stdio.h> 
     _____
    

以上兩段代碼作者不詳霹期,侵刪。
實(shí)現(xiàn)原理就不一一說(shuō)了斯撮,但請(qǐng)注意经伙,在實(shí)際工作中,千萬(wàn)不要寫(xiě)這種技巧性很高的代碼勿锅,不然被你同事打死都不知道是怎么回事帕膜,切記,切記溢十。

結(jié)束語(yǔ)

以"Hello World"開(kāi)啟代碼人生垮刹,后面的路還有很長(zhǎng)。我們的征途是星辰大海张弛。

代碼人生
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末荒典,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子吞鸭,更是在濱河造成了極大的恐慌寺董,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刻剥,死亡現(xiàn)場(chǎng)離奇詭異遮咖,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)造虏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)御吞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人漓藕,你說(shuō)我怎么就攤上這事陶珠。” “怎么了享钞?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵揍诽,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)寝姿,這世上最難降的妖魔是什么交排? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮饵筑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘处坪。我一直安慰自己根资,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布同窘。 她就那樣靜靜地躺著玄帕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪想邦。 梳的紋絲不亂的頭發(fā)上裤纹,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音丧没,去河邊找鬼鹰椒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛呕童,可吹牛的內(nèi)容都是我干的漆际。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼夺饲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼奸汇!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起往声,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤擂找,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后浩销,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體贯涎,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年撼嗓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了柬采。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡且警,死狀恐怖粉捻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情斑芜,我是刑警寧澤肩刃,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響盈包,放射性物質(zhì)發(fā)生泄漏沸呐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一呢燥、第九天 我趴在偏房一處隱蔽的房頂上張望崭添。 院中可真熱鬧,春花似錦叛氨、人聲如沸呼渣。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)屁置。三九已至,卻和暖如春仁连,著一層夾襖步出監(jiān)牢的瞬間蓝角,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工饭冬, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留使鹅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓伍伤,卻偏偏與公主長(zhǎng)得像并徘,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子扰魂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容