如果你對乙個程式設計師說「hello!」的話,他很有可能會回一句「world!」。這是因為對於無數的程式設計師來說,他們接觸的第乙個程式,甚至是每一種語言的第乙個程式,都是輸出「hello world!」。無論多麼自命清高的程式猿,都會對這句話留下深深的印象。所以,我便不免跟隨著大部隊,來給大家介紹一下如何用c++來輸出乙個「hello world!」。
首先,我們先來看一段**。
1 #include 2如果你之前接觸過程式設計的話,那麼看完這段**,你可能就明白了c++一些基本的東西,但是如果你是乙個純粹的新手,你可能就會很迷茫了,這到底是個什麼東西。using
namespace
std;34
intmain()
5
無論如何,不要著急,讓我給你從第一行開始慢慢來講。
我們先把第一句翻譯成漢語:#包括 《輸入輸出流》。
首先,開頭這個#是一定要有的,至於為什麼,我只能說這是一種規範。然後是後面的include ,iostream就是乙個庫,就像是乙個倉庫一樣,他裡面放有各種各樣的東西,而iostream這個庫裡面,放置的就是向程式內輸入,和向程式外輸出的辦法,當我們需要輸入或者輸出的時候,就要到倉庫裡看一下,有沒有輸入輸出的方式。如果我們事先沒有宣告要用到這個庫的話,那麼當我們後面要輸入輸出的時候,程式就不知道怎麼該怎麼輸入輸出了。而include就是用來說明,程式內包括這個庫,也就是要使用這個庫了。
然後是第二行 using namespace std;在《essential c++》上,作者並沒有找到乙個很好的解釋方法。為了防止這一段教程變成學院派的東西,我決定自己編造乙個解釋方法,如果有大神看到這坑爹的解釋,但求不要打臉。
首先,using就是用,你看到**裡,他是藍色的,而大多東西都是黑色的(不同環境下,顏色可能會有變化)。為什麼他是藍色的那?因為他是c++官方留下的預留字,他本身就具備著一定的含義,在這裡,他的目的就是告訴我們,我們要使用namespace std。
而namespace std則是指的一塊區域,namespace就是城區,std就是城區的名字,就像我們說海淀區、歷城區,但是在c++裡,我們要稱之為區海淀、區歷城。每個城區裡都有一堆的倉庫,不同的城區倉庫不同,iostream這個倉庫就在std這個城區裡面。所以在說明要使用哪乙個庫之後,我們還要說明他在哪乙個城區內,這樣程式才能找到這個倉庫。std區,內放著很多的倉庫,裡面放著一些很常用的東西,因此我們稱其內的庫為標準庫。而namespace的正確叫法,叫做命名空間。
為什麼要把這些庫分開放置呢,因為這樣可以避免應用程式內兩個不同的東西有同乙個名字,就像是在班級裡點名,乙個班裡有兩個小明,那麼就沒辦法直接區分了,我們只好對兩個小明進行解析,所以我們把其中乙個小明扔到另乙個班級裡,就不會發生這樣的衝突了。命名空間就好像是眾多名稱之間豎起的一道道圍牆。
當然,還存在一些其他的點出命名空間的辦法,但是,這個是最簡單的。
接下來,我們來講第四行,我們先來看main,這個main是主函式的意思,c++把程式分成了乙個個的函式,main就是最重要的函式,乙個程式需要做什麼,應該怎麼做,都寫在這個函式之中。而他前面的int是指該函式的資料型別。他既然是乙個函式就肯定有函式值,c++裡的函式值可以是乙個數字也可以是乙個字元,int是一種數字格式,他的資料範圍是-2^(32-1) ~ 2^(32-1) -1。後面的括號現在我們用不到,你只需要記住需要加這個東西就好了,接下來的課程中,我會對它進行講解。
我們得談一談為什麼會出現資料範圍這種東西。我們在現實生活中,寫乙個數字需要在紙上佔據一定的空間,在計算機中儲存也需要佔據一定的空間。但是,我們在紙上可以調節數字占用空間的大小,但是在電腦裡,占用多少空間就不是那麼好調整的了。所以我們便創造了好多的資料型別,每種型別占用的空間是一定的,所以他能表示的數字範圍也是一定的。
第五行和第八行的{}目的在於把程式內容框起來,告訴程式,你到**就不用再走了。
第六行開始的cout就是輸出了,他後面加上《表示輸出內容「」裡面框著的東西,就是要輸出的東西。但是我們只會用「」框起來一串東西,如果你只想框乙個東西的話,那就要用到『』了。後面//裡的東西是注釋,程式會把他無視掉,他存在的目的只是為了讓我們自己能看懂。
輸出這個東西是要有必要細講一下的。
cout <
cout << 3 + 4;
cout << '\n';
這樣他會輸出3 + 4 = 7然後換行。你發現,第二個輸出沒有兩個引號,這是為什麼那?試著看我這樣講會不會嚇到你,引號內的東西,程式一般不會在意,將其直接輸出。而不加括號,程式就會看一下他是不是變數或者表示式,然後輸出變數和表示式對應的值。那麼問題又來了,什麼是變數(表示式)?變數就是乙個值可以變化的量就像y=x裡的y和x,我們輸出的就是x或者y對應的值。而表示式就是乙個式子了,c++裡的表示式內涵很豐富。這個以後用到再講。最後乙個'\n'的意思是換行。輸出中在\後面的東西一般都會有它特殊的意思,這就是不一般的情況了,\n的意思就是換行。之所以要這麼做,是因為有些東西沒辦法直接輸出,比如換行符('n')製表符('t'),還有引號、\,這樣的會被程式誤解的符號。通過前面加\,就可以完成輸出了。
輸入的寫法則是cin >> 。比如cin >> x 就是讀入x的值。如果我們需要讀入x的話,那麼我們要先說明程式中要用到x這乙個變數,如果x是乙個數字,那麼我們就要在他前面加上 int x。int x的意思和int main 差不多,但是這裡的x是乙個變數而非函式的名稱。當然你還可以嘗試一些其他的資料型別。
最後我們只剩下乙個return 0了,我前面說過函式肯定要有函式值,return 0的作用在於,返回0為函式的值,因為我們並不需要用到main的值,所以你返回幾都可以,但是我們還是會習慣性的選取0作為返回值。如果程式返回的不是0,那麼就說明程式沒有執行成功。一般,當你漏掉這句話後,他會自動被ide加上。
附錄:c++基本資料型別
型別+含義+最小儲存空間(按2進製儲存)如下:
bool 布林型
char 字元型 8位
wchar_t 寬字元型 16位
short 短整型 16位
unsigned short 無符號短整型 16位(無符號型別無法表示負數,但是正數的表示範圍會大一倍)
long 長整形 32位
unsigned long 無符號長整型 32位
long long 雙長型 64位
unsigned long long 無符號雙長型 64為
float 單精度浮點型 6為有效數字(浮點數可理解做小數)
double 雙精度浮點型 10位有效數字
long double 擴充套件精度浮點型 10位有效數字
讓我們來看一看C 簡短自序
如果有個人連寫博文都要寫序言的話,那麼無疑這個人是十分奇怪的,恰好,我就是這麼乙個奇怪的人。必須承認,在眾多博主中,我的水平算是比較低的,至今為止,我不過懵懵懂懂的在這個圈子裡轉了一年多,相比那些奮鬥在各個崗位的業界精英,我真的算是乙隻完完全全的菜鳥。而且,我目前的目的是在oi競賽中出線,自然寫不出...
看一看大海
前段時間又去了海邊走走,歸途中西邊天空公升起絢爛的晚霞。2020年已然過去一半,特殊環境下發生的事情都是奇特的,這裡記錄一下碎片化的思考。雞湯不是毒藥,喝一碗不多。選擇 代表著主動性,通常可以與強大的個人能力聯絡起來 被選擇 往往代表著被動性,無能為力 迫不得已常常與之掛鉤,大多數理解為能力弱小。我...
看一看 笑一笑
一 廣東一夥劫匪在搶劫銀行時說了一句至理名言 通通不許動,錢是國家的,命是自己的!大家都一聲不吭躺倒。這叫觀念轉化,改變原有固定思維方式。劫匪望了一眼穿著裙子躺在桌上呈大字形的出納小姐,說 請你躺文明些!這是劫財,又不是劫色!這叫堅持職業操守,不該幹的不幹!搶劫成功回去後,其中乙個新來的劫匪 碩士學...