C++ Primer Plus 6 第二章

來源:互聯網
上載者:User

標籤:前置處理器   如何   函數名   資料類型   str   括弧   c++   編譯   多行   

 

 1 // myfirst.cpp--displays a message 2  3 #include <iostream>                           // a PREPROCESSOR directive 4 int main()                                    // function header 5 {                                             // start of function body 6     using namespace std;                      // make definitions visible 7     cout << "Come up and C++ me some time.";  // message 8     cout << endl;                             // start a new line 9     cout << "You won‘t regret it!" << endl;   // more output10 // If the output window closes before you can read it,11 // add the following code:12     // cout << "Press any key to continue." <<endl;13     // cin.get();                                                   14     return 0;                                 // terminate main()15 }                                             // end of function body

對上面的代碼進行講解:

1,第一行的雙斜杠“//”表示單行注釋。注釋是給程式員看的,能夠協助程式員快速瞭解代碼的作用。編譯時間,編譯器會把注釋忽略掉。除了單行注釋,還有多行注釋:  /*  */

2,第三行 #include <iostream>  前置處理器編譯指令。 編譯器主編譯之前,前置處理器會進行編譯預先處理。將iostream的檔案匯入到源檔案中,組成一個複合檔案,然後才會進行主編譯。將iostream的內容添加到來源程式,是因為程式後面會用到cout、endl等。後面會將到cout、endl到底是什麼。其中 iostream 叫做包含檔案——被包含在其他檔案中,也叫標頭檔——被包含在檔案的起始位置。C語言中,標頭檔使用副檔名.h,而C++中相容C語言的副檔名形式,C++的新風格中沒有副檔名,具體可查看相關檔案。

3,第四行 int main() 是函數頭,int是函數的傳回值的類型,mian是函數名。括弧是參數列表,也叫形參列表。此處為空白,叫空參數列表。第五行和第十五行是兩個花括弧,花括弧裡面的內容是函數體,函數體內是函數具體要執行的操作。第十四行的return 0;表示函數傳回值為0.main函數比較特殊,是編譯器的入口函數。一個獨立的程式是要有main函數的,這樣編譯器才知道從哪裡開始執行。也有沒有main函數的程式,比如動態連結程式庫,是做為函數庫,也叫工具,給其他程式調用的。這種就不需要main函數了。

4,第六行 using namespace std; 這叫做using編譯指令。std是名稱空間,大型程式中會調用到兩個不同的已經封裝好的產品,可能都提供了A方法,為了讓編譯器知道具體調用哪個方法,就需要命名空間來區分。比如說命名空間分別為m、n,這樣就可以通過m::A()來調用m中的A方法,用n::A()來調用n中的A方法。而std這個命名空間比較特殊,它是C++標準命名空間,C++的標準組件類、函數、變數都放在這個命名空間,比如cout、endl就是放在命名空間std的。使用using編譯指令,std內的所有名字都能使用了。當然在大型項目中不建議這樣做。可以使用這種 using std:: cout 、using std::endl來使用cout和endl。

5,第七行 cout << "Come up and C++ me some time."; 最後的分號代表一個語句結束。雙引號括起來的一系列字元叫做字串。<<符號表示將該字串發送給cout;該符號指出了資訊流動的路徑。cout是一個預定義的對象,知道如何顯示字串、數字、字元等。<<符號是cout的一個插入運算子,可以將符號右側的資訊插入到cout對應的流中。

6,第八行 cout << endl; endl是控制符;在輸出資料流中插入endl,將導致螢幕游標移到下一行。諸如這種對cout有特殊含義的特殊符號叫做控制符。也可以使用\n換行。比如cout<<"you are beautiful\n";其中\n被視為一個字元,叫做分行符號。但有個區別是,endl會使螢幕重新整理輸出(輸出緩衝)。而\n不會有這種效果。

 

 1 // carrots.cpp -- food processing program 2 // uses and displays a variable 3  4 #include <iostream> 5  6 int main() 7 { 8     using namespace std; 9     10     int carrots;            // declare an integer variable11     12     carrots = 25;            // assign a value to the variable13     cout << "I have ";14     cout << carrots;        // display the value of the variable15     cout << " carrots.";16     cout << endl;17     carrots = carrots - 1;  // modify the variable18     cout << "Crunch, crunch. Now I have " << carrots << " carrots." << endl;19     // cin.get();20     return 0;21 }

1,這個例子與上面的例子沒什麼太大差別。講一下第10行 int carrots; 這個表示一個聲明語句。int表示資料類型,告訴編譯器要申請一個指定大小的記憶體空間。int,在C++中表示整數。carrots表示申請的記憶體空間的一個名字。用來表示儲存空間所儲存的值。

carrots是一個變數,即值是可以變化的。

2,第12行  carrots = 25; 是一個指派陳述式,表示將25這個標記賦給carrot所儲存的記憶體空間中。有一個聯絡賦值的概念,如:a=b=c=3;表示將3賦給c,再將c的值賦給b,再將b的值賦給a。是從右向左進行賦值的。

3,第17行  carrots = carrots - 1; 表示carrots的值25減去1得到24,然後將24這個結果賦值給變數carrots。

4,擴充下,如下:cout<<25;與cout<<"25";有什麼區別?25是數字,在電腦中是以二進位儲存。二進位標記法與電腦記憶體完全對應。在記憶體中,每個單元(位)都可以設定成開或關。0表示關,1表示開。記憶體通常以位元組位單位組織,一個位元組包含8位。所以,一般int類型是4個位元組,就是32位。25有二進位表示是00000000 00000000 00000000 00011001.而對於字串“25”,其實是字元‘2‘、‘5‘、‘\0‘三個字元組成的,單個字元是一個位元組,也就是8位,“25”在電腦中儲存的是00000010 00000101 00000000.那為什麼顯示出來的都是25,是因為cout會根據資料類型,將整數25轉換為字串,然後顯示成25.為什麼要轉換為字串顯示呢?可以理解為,顯示給人看的,就需要轉換為字串。

5,第18行 cout << "Crunch, crunch. Now I have " << carrots << " carrots." << endl; 使用到cout拼接技術。

 

類簡介:

1,類是使用者定義的一種資料類型。類定義描述的是資料格式及其用法。對象是根據資料格式規範建立的實體。比如:cout是ostream類的一個對象,cin是istream類的一個對象。只不過這兩個對象是內建對象,不需要使用者手動去建立就可以使用。

C++ Primer Plus 6 第二章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.