1. 程式人生 > >thinking in C++ 讀書日誌(三)

thinking in C++ 讀書日誌(三)

第三章

  在推薦“看點”之前先提出一個疑問:

  有沒有人對起分段編譯作用得make和makefile比較瞭解,我看了半天也沒看懂。它們到底是怎樣作用與編譯過程的?又是為什麼能作用於編譯過程呢?有誰懂請一定給我留言啊!我的qq:455126537,多謝了先!

 

主要推薦看點如下:

 

1.C++中的“實時定義變數”

知道嗎,其實在c中:for(int i=1;i<=10;i++){;}是會出錯的哦。

 

2.全域性變數、區域性變數、靜態變數、外部變數

   全域性變數與外部變數是有一定聯絡的;而靜態變數與全域性變數是不同的;區域性變數作用域的定義。這些都是很重要的。

 

3.常量const與預處理巨集#define

   常量的管理,c++中const要比#define優越;而define則有其他的獨特價值(#define PR(E) cout<<#E<<”: ”<<E<<endl;)不懂的話就快看書吧!^_^

 

4. c++的顯式型別轉換

   主要是它:static_cast<TYPE>(VARIABLE);它比(TYPE)VARIABLE 只有“視覺上”的好處,不過仍推薦用它代替老方法。書上寫有詳細原因。

 

5. main()的兩個引數 int, char *[]

   常寫作:main(int argc,char *argv[])

   其作用是接收“命令列下”傳遞的引數。比如我在dos下寫的:format c: -q 中的”c:”和“-q”,它預設的argv[0]存的是“format”。推薦看一下,很有意思的。

 

6. <cstdlib>中的atoi,atof,atol函式

   是字元型->整型(/浮點型/長整型)的函式,例:atoi(argv[1]);

 

7. assert巨集 斷言

   它保證引數表示式的正確性,否則則退出程式。作用類似<cstdlib>中的exit();但它可以彈出錯誤對話方塊並給出錯誤的位置。例如:assert(GO==true);//當GO不為true時彈出錯誤對話方塊。

 

8. 函式指標

   指向函式的指標。宣告形如:void (*pf1)(); 不常用,但應該瞭解。

 

9. 位運算子

   &,<<,等這些運算子不僅效率高,而且可以做很多事的。要想編出高效率的程式,對它們一定要理解。