《C++ Primer Plus》:開(kāi)始學(xué)習(xí)C++

本文同時(shí)發(fā)布在我的個(gè)人博客上:https://dragon_boy.gitee.io

hello world!程序

//Hello World!
#include <iostream>
int main()
{
    using namespace std;
    cout << "Hello World!" << endl;
    return 0;
}

上述程序包含以下元素:

  • 注釋?zhuān)?/標(biāo)識(shí)穷吮。
  • 預(yù)處理器編譯指令#include逻翁。
  • 函數(shù)頭int main()
  • 編譯指令using namespace捡鱼。
  • 函數(shù)體八回,用{}擴(kuò)起。
  • 使用C++的cout工具顯示消息的語(yǔ)句 驾诈。
  • 結(jié)束main()函數(shù)的return語(yǔ)句缠诅。

main()函數(shù)

int main()叫函數(shù)頭,花括號(hào)中包括的部分叫函數(shù)體乍迄,顯示在下圖:



函數(shù)體是指函數(shù)應(yīng)做什么的計(jì)算機(jī)指令管引。在C++中,每條完整的指令都成為語(yǔ)句闯两。所有的語(yǔ)句都以分號(hào)結(jié)束褥伴。main()中的最后一條語(yǔ)句叫做返回語(yǔ)句,它結(jié)束該函數(shù)漾狼。

C++函數(shù)可被其它函數(shù)激活或調(diào)用重慢,函數(shù)頭描述了函數(shù)與調(diào)用它的函數(shù)之間的接口。位于函數(shù)名前面的部分叫做函數(shù)返回類(lèi)型逊躁,即從函數(shù)返回給調(diào)用它的函數(shù)的信息似踱。函數(shù)名后括號(hào)中的部分叫做形參列表,即從調(diào)用函數(shù)傳遞到被調(diào)用函數(shù)的信息稽煤。通常不從其它部分調(diào)用main()核芽。

main()被啟動(dòng)代碼調(diào)用,而啟動(dòng)代碼是由編譯器添加到程序中的酵熙,是程序和操作系統(tǒng)之間的橋梁轧简。即該函數(shù)頭描述的是main()和操作系統(tǒng)之間的接口。

C++預(yù)處理器和iostream文件

程序使用預(yù)處理器在進(jìn)行主編譯之前對(duì)源文件進(jìn)行處理匾二,不必執(zhí)行任何特殊操作來(lái)調(diào)用該預(yù)處理器吉懊,它會(huì)在編譯程序時(shí)自動(dòng)運(yùn)行庐橙。

#include <iostream>

該編譯指令將讓預(yù)處理器將iostream文件的內(nèi)容添加到程序中。

頭文件名

像iostream這樣的文件叫做包含文件借嗽,或頭文件态鳖。

名稱(chēng)空間

如果不使用傳統(tǒng)的.h后綴的包含文件,則要使用名稱(chēng)空間編譯指令來(lái)使iostream中的定義對(duì)程序可用:

using namespace std;

名稱(chēng)空間的存在意義是為了可以存在重名的元素恶导。C++的內(nèi)置相關(guān)組件存儲(chǔ)在std名稱(chēng)空間中浆竭,有三種方式使用:

using namespace std;  //全局使用
std::something;  //單獨(dú)使用
using std::something;  //全局聲明某一單一指令

cout進(jìn)行輸出

cout << "Hello World!" << endl;

雙括號(hào)擴(kuò)起的是要打印的信息。<<符號(hào)將該字符傳給cout惨寿。cout是一個(gè)預(yù)定義的對(duì)象邦泄。

從概念上,輸出一個(gè)流裂垦,即從程序流出的一系列字符顺囊,cout對(duì)象表示這種流,其屬性在iostream文件中定義蕉拢,cout對(duì)象屬性包括<<特碳,它可以將右側(cè)信息插入到流中。

  1. endl
    endl是一個(gè)特殊C++符號(hào)晕换,重啟一行午乓。

  2. 換行符
    舊式方法:\n,與endl的差別是:endl確保程序繼續(xù)運(yùn)行前刷新輸出(將其立即顯示在屏幕上)闸准,而\n不一定保證益愈。

C++語(yǔ)句

C++程序是一組函數(shù),而每個(gè)函數(shù)又是一組語(yǔ)句夷家。

聲明語(yǔ)句和變量

int carrots;

該語(yǔ)句提供了兩項(xiàng)信息:需要的內(nèi)存以及該內(nèi)存單元的名稱(chēng)蒸其。

賦值語(yǔ)句

carrots = 25;

=為賦值運(yùn)算符,C++可以連續(xù)使用库快。

int a, b, c;
a = b= c = 0;

賦值從右向左進(jìn)行摸袁。

其它C++語(yǔ)句

cin

cin >> carrots;

這條語(yǔ)句,信息從cin流向carrots缺谴。

cout拼接

cout可以將多個(gè)輸出語(yǔ)句進(jìn)行拼接:

cout << "I have" << carrots << "carrots" << endl;
//
cout << "I have"
     << "some carrots"
     << endl;

類(lèi)

類(lèi)定義描述的是數(shù)據(jù)格式及其用法,對(duì)象則是根據(jù)數(shù)據(jù)格式規(guī)范創(chuàng)建的實(shí)體耳鸯。

int carrots;

上述代碼將創(chuàng)建一個(gè)int類(lèi)型的變量湿蛔,即carrots可以存儲(chǔ)整數(shù),可以按特定的方式使用县爬。cout是一個(gè)ostream對(duì)象阳啥,ostream類(lèi)定義描述了對(duì)象表示的數(shù)據(jù)以及可以對(duì)它執(zhí)行的操作,cin是一個(gè)istream對(duì)象财喳。

函數(shù)

C++函數(shù)分兩種: 有返回值和無(wú)返回值察迟。

有返回值函數(shù)

如內(nèi)置sqrt()斩狱,計(jì)算平方根的函數(shù):

x = sqrt(6.25);

表達(dá)式sqrt(6.25)被稱(chēng)為函數(shù)調(diào)用,被調(diào)用的函數(shù)叫做被調(diào)用函數(shù)扎瓶,包含函數(shù)調(diào)用的函數(shù)叫做調(diào)用函數(shù)所踊,圓括號(hào)中的值是發(fā)送給函數(shù)的信息,即參數(shù)概荷。函數(shù)sqrt()得到結(jié)果為2.5并將這個(gè)值發(fā)送給調(diào)用函數(shù)秕岛,這個(gè)值叫做返回值。簡(jiǎn)而言之误证,參數(shù)是發(fā)送給函數(shù)的信息继薛,返回值是從函數(shù)中發(fā)送回去的值。

C++提供函數(shù)的參數(shù)類(lèi)型和返回值類(lèi)型的語(yǔ)句稱(chēng)為函數(shù)原型語(yǔ)句愈捅,應(yīng)當(dāng)為每個(gè)函數(shù)提供原型遏考。sqrt()函數(shù)的原型如下:

double sqrt(double);

函數(shù)變體

有些函數(shù)需要多個(gè)參數(shù),如pow函數(shù):

double pow(double, double);

有些函數(shù)不需要參數(shù)蓝谨,如rand:

int rand();

有些函數(shù)沒(méi)有返回值:

void bucks(double);

總結(jié)

C++程序由一個(gè)或多個(gè)被稱(chēng)為函數(shù)的模塊組成灌具。程序從main()開(kāi)始執(zhí)行。函數(shù)由函數(shù)頭和函數(shù)體組成像棘,函數(shù)頭指出函數(shù)的返回值的類(lèi)型和函數(shù)期望通過(guò)參數(shù)傳遞給它的信息的類(lèi)型稽亏。

有多種類(lèi)型的C++語(yǔ)句:

  • 聲明語(yǔ)句
  • 賦值語(yǔ)句
  • 消息語(yǔ)句
  • 函數(shù)調(diào)用
  • 函數(shù)原型
  • 返回語(yǔ)句

類(lèi)是用戶(hù)定義的數(shù)據(jù)類(lèi)型規(guī)范,它描述了如何表示信息以及可對(duì)數(shù)據(jù)執(zhí)行的操作缕题。對(duì)象是根據(jù)類(lèi)規(guī)范創(chuàng)建的實(shí)體截歉。

C++提供了兩個(gè)用于處理輸入和輸出的預(yù)定義對(duì)象,他們是istream和ostream類(lèi)的實(shí)例烟零。cin和cout都是智能對(duì)象瘪松,能夠根據(jù)程序上下文自動(dòng)將信息從一種形式轉(zhuǎn)化為另一種形式。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锨阿,一起剝皮案震驚了整個(gè)濱河市宵睦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌墅诡,老刑警劉巖壳嚎,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異末早,居然都是意外死亡烟馅,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)然磷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)郑趁,“玉大人,你說(shuō)我怎么就攤上這事姿搜」讶螅” “怎么了捆憎?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)梭纹。 經(jīng)常有香客問(wèn)我躲惰,道長(zhǎng),這世上最難降的妖魔是什么栗柒? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任礁扮,我火速辦了婚禮,結(jié)果婚禮上瞬沦,老公的妹妹穿的比我還像新娘太伊。我一直安慰自己,他們只是感情好逛钻,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布僚焦。 她就那樣靜靜地躺著,像睡著了一般曙痘。 火紅的嫁衣襯著肌膚如雪芳悲。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天边坤,我揣著相機(jī)與錄音名扛,去河邊找鬼。 笑死茧痒,一個(gè)胖子當(dāng)著我的面吹牛肮韧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播旺订,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼弄企,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了区拳?” 一聲冷哼從身側(cè)響起拘领,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎樱调,沒(méi)想到半個(gè)月后约素,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡笆凌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年圣猎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菩颖。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡样漆,死狀恐怖为障,靈堂內(nèi)的尸體忽然破棺而出晦闰,到底是詐尸還是另有隱情放祟,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布呻右,位于F島的核電站跪妥,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏声滥。R本人自食惡果不足惜眉撵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望落塑。 院中可真熱鬧纽疟,春花似錦、人聲如沸憾赁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)龙考。三九已至蟆肆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間晦款,已是汗流浹背炎功。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缓溅,地道東北人蛇损。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像肛宋,于是被迫代替她去往敵國(guó)和親州藕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345