C++知識回顧(一)

來源:互聯網
上載者:User

標籤:

   感覺世界都是約定好的,每門語言的第一個程式總是Hello World!但是也有一些書似乎是在追求個性,會用一些其他的,但是是Not Hello World!本人需要再學習一下C++,所以從最基礎的開始。世間萬物Hello World:

1 // helloworld.cpp2 #include <iostream>3 using namespace std;4 5 int main()6 {7     cout << "Hello World!" << endl;8     return 0;9 }

  這可能是最簡單一個程式了,僅僅是向螢幕列印“Hello World!”這一資訊。但其中包含了很多概念:

  • 注釋
  • 預先處理指令
  • main()函數
  • 輸入/輸出流

1.注釋

  程式第一行為一行注釋,以供程式員閱讀,編譯器會呼略。C++中有兩種注釋方法:

1 //注釋2 /*注釋*/

  使用注釋的主要原因:

  (1)說明用途

  解釋程式碼中函數作用,包括參數意義,傳回值等資訊。

  (2)說明複雜代碼

  對於控制台的簡單程式中,代碼閱讀可能相對容易一些,但是在一些專業領域,代碼可能複雜而深奧,如下代碼:

 1 void sort(int inArray[], int inSize) 2 { 3     for (int i = 1; i < inSize; i++) 4     { 5         int element = inArray[i]; 6         int j = i - 1; 7         while (j >= 0 && inArray[j] > element) 8         { 9             inArray[j + 1] = inArray[j];10             j--;11         }12         inArray[j + 1] = element;13     }          14 }    

  這是一個排序演算法,通過添加註釋可以解釋內部的一些令人迷惑的代碼。

  (3)傳遞元資訊

  提供建立代碼的詳細資料,但不涉及代碼的特定行為,如加入作者資訊,建立日期等等。

2.預先處理指令

  產生一個C++程式有三個步驟。首先,代碼在前置處理器中運行,前置處理器識別代碼中的元資訊。隨後,代碼被編譯或轉換為電腦可識別的目標檔案。最後,通過連結變成一個應用程式。預先處理命令以#開始,第一個程式中的#include <iostream>便是,意思是提取<iostream>標頭檔的內容給當前檔案。如果不包含這個標頭檔,甚至無法完成輸出文本的任務。

常見的預先處理指令:

預先處理指令 功能
#include [file]

指定的檔案插入到代碼中指令所在的位置

#define [key][value] 每個制定的key被替換為指定的值

#ifdef[key]

#ifndef[key]

#endif

在ifdef塊或ifndef塊中的代碼被有條件的

包含或者捨棄,這取決於是否使用#define

定義了指定的key

#prama [xyz]

xyz因編譯器而異。如果前置處理期間間執行到這

一指令,通常會顯示警告或錯誤資訊

  以下是使用前置處理器指令避免重複包含:

1 #ifndef HEADER_H_2 #define HEADER_H_3 // .........................4 #endif

  若編譯器支援#pragma once指令,可用下面代碼重寫上面的代碼:

1 #pragma once2 // ..........................

3.main()函數

  main()是程式的入口。其傳回值是一個int類型,指示程式的最終運行狀態。可以有參數,也可以有兩個參數:

int main(int argc, cha *argv[])

  其中argc給出傳遞給程式的參數數目,argv包含這些參數。

4.輸入/輸出流

  基本的輸出資料流是std::cout,此外還有std:cerr。<<將資料插入到流中。std::endl代表序列的結尾,當輸出資料流遇到std::endl時,就會將所有內容輸出並轉移到下一行。還有\n也可以。\n是一個逸出字元,是一個分行符號。下面是最常見的逸出字元:

\n    換行

\r     斷行符號

\t     定位字元

\\     反斜線符

\"     引號

  流也可以接受使用者輸入,最簡單的是使用>>。std::cin輸入資料流接受使用者鍵盤輸入。

參考:

Marc Gregoire, Nicholas A. Solter, Scott J. Kleper, C++進階編程,清華大學出版社,2012,ISBN:978-7-302-29897-7

 

C++知識回顧(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.