程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++學習筆記(2),學習筆記

C++學習筆記(2),學習筆記

編輯:C++入門知識

C++學習筆記(2),學習筆記


本學習筆記是C++ primer plus(第六版)學習筆記。是C++學習筆記(1)的後續。復習C++基礎知識的可以瞄瞄。

轉載請注明出處http://www.cnblogs.com/zrtqsk/p/3878593.html,謝謝!如下。

 

第五章

1、for循環——for(initialization; test-expression; update-expression) body  // test-expression 會被轉換為bool,0為false,非零為true

 

2、表達式——表達式是值或值與運算符的組合。賦值表達式的值為其左側成員的值,而賦值運算符是從右到左結合的。

 

3、a++和++a——

  (1)對於內置類型,兩種執行效率相同。

  (2)若重載運算符,對於類而言,前綴將值加1,返回結果;後綴會復制一個副本,加1後返回副本。所以前綴比後綴效率高。

 

4、逗號運算符——

  (1)for循環中,將多個表達式合並為一個:  i++, j++;

  (2)聲明:  int i , j;

  (3)逗號表達式先計算第一個表達式,再計算第二個表達式。逗號表達式的值是第二部分的值。

  (4)逗號表達式是優先級最低的表達式。

 

5、strcmp()——比較兩個字符串。接受2個字符串地址A、B作為參數。AB相同返回0,A的字母順序在B之前,者返回負數,否則返回正數。

  (用引號括起的字符串常量是其地址。)

 

6、clock()——返回程序開始執行後所用的系統時間。這個值除以CLOCKS_PER_SEC可以得到秒數。

 

7、類型別名——#define AA char  // 用AA作為char的別名,所有的AA將被char替代

  或  typedef AA char

 

8、cin——cin.get()會忽略空格和換行符。發送給cin的輸入會被緩沖。按下回車鍵,輸入的內容才會被發送給程序。

   cin.get(ch)會得到每個字符。其參數聲明為引用類型,所以函數可以修改其參數的值。

 

9、EOF——很多PC編程環境都將Ctrl+Z視為模擬的EOF,檢測到EOF之後,cin將兩位(eofbit和failbit)都設置為1。eof()和fail()用來查看是否被設置。

  所以循環等待輸入的條件可以這樣設置:while( cin.fail() == false ) {} 或 whle( !cin.fail() ){} 或 while(cin){} 或 while( cin.get(ch) ){}

  (通常,EOF被定義為-1)

 

第六章

 

10、運算符——!運算符的優先級高於所有的關系運算符和算術運算符。

    邏輯AND運算符的優先級高於邏輯OR運算符。

    C++確保程序從左到右計算邏輯表達式。

 

11、cctype——字符函數庫。如isalpha(ch)判斷字符是不是字母,是字母就返回非零,否則返回0。

 

12、文本IO——使用cin進行輸入時,程序將輸入看作一系列的字節,其中每個字節被解釋為字符編碼。

 

第七章

 

13、定義函數——

  (1)、無返回值:  void functionName(parameterList) {}

  (2)、有返回值:  typeName functionName(parameterList) {}

  (注意!返回值的類型不能是數組,可以是其他任何類型)

 

14、函數原型——

  (1)、函數原型能極大降低程序出錯的幾率、提高效率。

  (2)、函數原型不要求提供變量名,有類型列表就足夠了。

  (3)、括號為空與括號中使用void是等效的,不指定參數列表應使用省略號——void haha(...);

 

 15、函數和二維數組——指針的類型是指把指針聲明語句中的指針名字去掉所剩下的部分

  對於:  int data[3][4] = {{1,2,3,4},{5,6,7,8},{4,3,2,1}};  int total = sum(data,3);  sum的原型是什麼?

  (1)、原型是:  int sum ( int (*a) [4] , int size); 

  所以 int(*)[4]即,將這個指針指向int[4]。所以data的類型指向4個int組成的數組的指針

  所以 int *a[4] 的類型是int * [4],這個指針指向int,總共有4個,即它是4個指向int指針組成的數組

  (2)、函數定義:  int sum (int a[][4] ,int size);

  a[ r ][ c ] = *( *( a + r ) + c); 

 

16、遞歸——每個遞歸調用都創建自己的一套變量。

  (注意!C++不允許main()調用自己。)

 

17、函數指針——

  (1)、函數地址:  函數的地址是存儲其機器語言代碼的內存的開始地址。如果think()是一個函數,那麼think就是它的地址。

  (2)、聲明指針函數:  函數:double pam(int);  指針函數為: double (*pf)(int) = pam;  // pf是一個指向函數的指針。

  

第八章

 

18、編譯過程——編譯過程的最終產品是可執行程序(由一組機器語言指令組成)。

  運行程序時,操作系統將這些指令載入到計算機內存中,因此每條指令都有特定的內存地址。計算機隨後逐步執行這些指令。

 

19、函數調用——執行到函數調用指令時,程序將在函數調用後,立即存儲該指令的內存地址,並將函數參數復制到堆棧,跳到標記函數起點的內存單元,

  執行函數代碼(也許還需將返回值放入寄存器),然後跳回到地址被保存的指令處。

 

20、內聯函數——編譯器使用相應的函數代碼代替函數調用。

  函數聲明前加上關鍵字inline,函數定義前加上關鍵字inline。通常將省略原型,原型處直接定義。

 

21、引用變量——主要用途是作函數的參數,函數將使用原始數據,而不是其副本。

  (1)、創建:  int rats ;  int & a = rats;

  (2)、引用必須在聲明時初始化,不能先聲明再初始化。也不能通過賦值來設置引用。

  (3)、引用一旦與某個變量關聯起來,就一直效忠。

  (4)、若引用參數是const,若實參類型正確卻不是左值 或 類型不正確卻可以轉換成正確類型 時,將創建臨時變量

  (5)、返回引用時,應避免返回函數終止時不再存在的內存單元引用。

 

22、左值——

  (1)、可被引用的數據對象。如變量、數組元素、結構成員、引用和解除引用的指針等。

  (2)、非左值,包括字面常量和包含多項的表達式。

  (3)、常規變量屬於可修改的左值,const變量屬於不可修改的左值。

 

23、右值引用——可指向右值的引用,使用&&聲明。如:  double & rref = std::sqrt ( 26.00 ) ;

 

24、默認參數——通過函數原型設置函數參數默認值。

  (1)、必須從右到左添加默認值。

  (2)、實參按照從左到右的順序依次被賦值給形參,而不能跳過任何參數。

 

25、函數重載——參數列表(特征標)不同,而函數名相同的函數。

  (1)、類型引用和類型本身被視為同一個特征標。

  (2)、不能把const變量賦值給非const形參

 

26、名稱修飾——根據函數原型中指定的形參類型對每個函數名進行加密,用來跟蹤每一個重載函數。

 

27、函數模板——相當於Java中的泛型

  (1)、聲明:  template <typename T> void Swap(T &a, T &b);  // typeName 可用 class 替換

  (2)、函數模板不能縮短可執行程序,最終的代碼不包含任何模板,只包含了為程序生成的實際函數。

  (3)、一般將模板放在頭文件中。

 

28、顯式具體化——具體化的函數定義,匹配時,使用它而不是模板。

  (1)、非模板函數:  void swap( job &, job &);

  (2)、模板函數:  template <typeName T> void swap( T & ,T &);

  (3)、顯式具體化:  template<> void swap<job>( job &, job &);  // swap<job>中job是可選的

  (4)、編譯器在選擇原型時:  非模板函數  >  顯式具體化  >  模板函數

  (5)、顯式實例化:  template void swap<int> ( int, int);  // template後無<>

  (6)、隱式實例化:  對於模板函數,編譯器會通過對這個模板含數的引用生成一個含數的實例,這通常叫隱式實例化

 

29、decltype——decltype( expression ) var;  // 讓var的類型與expression一樣。

  (注意!若expression是一個函數調用,var的類型與其返回值相同。若expression是一個左值,var為指向其類型的引用)

 

30、後置返回類型——給函數指定返回類型。

  如:template<class T1, class T2>  auto gt( T1 x, T2 y) -> decltype( x + y ) {  ...  return x + y ;}

 


各位有沒有C語言的學習筆記或整理好的一些資料?

《c語言編程百例》,按照例子來學習比較容易上手,比直接看那些原理性的書籍強 //
是寫程序的機試還是理論的筆試?
機試推薦《程序設計引導及在線實踐》,大綱級書籍,具體鏈接:ai.pku.edu.cn/book/
理論的筆試肯定還是以譚浩強的為主,不過確實有些亂,你不妨買本它配套的習題之類的看看,譚浩強此書配套習題相當多,基本上都大同小異,根據手頭已有的資料為主來選吧,具體不推薦了。
 

plsql學習筆記2

筆記本的牌子很多,不過從近期的電腦保修以及售後服務,最重要的是性價比來看,我推薦兩款牌子電腦“聯想與惠普”
下面我介紹幾款電腦,樓主可以考慮考慮、

聯想

它Y430的系列在最近的電腦售量以及關注排行版上都是前幾名
我要介紹的有三款
y430a-pse

配置如下
處理器型號 Intel 酷睿2雙核 P7450
標稱主頻 2.13GHz
前端總線 1066MHz
二級緩存 3MB
內核架構 Penryn
平台技術 Intel 迅馳2平台
主板芯片組 Intel PM45
標配內存容量 2GB
內存類型 DDRIII
最大支持內存 4GB
硬盤/光驅
硬盤容量 250GB
硬盤描述 SATA
光驅類型 DVD刻錄機
設計類型 光驅內置
顯卡/音效
顯卡類型 中低端獨立顯卡
顯卡芯片 NVIDIA GeForce 9300M GS
流處理器個數 16
顯存/位寬 256MB/64bit
顯存類型 DDRII
音頻系統 內置音效芯片
揚聲器 杜比認證音效,2.1音響(立體聲音箱+低音炮)
顯示屏
屏幕尺寸 14.1英寸
屏幕比例 16:10
屏幕分辨率 1280×800
屏幕描述 LED WXGA
尺寸/重量
筆記本重量 2350g
外形尺寸 334×241×26-38mm
機殼材質 復合材質
網絡通信
無線網卡 Intel 5100AGN
網卡描述 100Mbps網卡
支持藍牙 支持
調制解調器 56K
紅 外 線 紅外線接口
鼠標/鍵盤
指取設備 觸摸板
鍵盤描述 聯想高觸感筆記本鍵盤
接口
USB接口 3個USB2.0接口
擴展接口 ExpressCard
讀卡器 多合一讀卡器(SD/MMC, xD, MS, MS pro, SD Pro)
視頻輸出 HDMI高清端口、標准VGA接口
其他接口 RJ11,RJ45、全陣列式抗噪麥克風,支持立體音的耳機插孔/音頻輸出,1394接口
電源描述
電池類型 6芯锂電池
電源適配器 90W電源適配器
其他
操作系統 Windows Vista Home Basic
質保時效 3年
附帶軟件 聯想軟件禮包
隨機附件 鼠標
可選配件 筆記本禮包(需另行購買)
其他性能 130萬像素 支持安全易用的人臉識別功能
一鍵安靜模式
杜比音效2.1音響體系
靜電感應式多媒體觸控操作
娛樂飛梭音場控制
HDMI高清輸出端口
其他特點 聯想一鍵拯救/聯想閃聯任意通
環境要求
工作溫度 0-35℃
工作濕度 參數糾錯10%-90%(無冷凝)

價格在6100左右,絕對的物超所值。。。特別是它的散熱性能很好!

第二款是y430-tfi

配置
處理器型號 Intel 酷睿2雙核 T5800
標稱主頻 2GHz
前端總線 800MHz
二級緩存 2MB
內核架構 Merom
平台技術 Intel 迅馳平台
主板芯片組 Intel PM45
標配內存容量 2GB
內存類型 DDRIII
最大支持內存 4GB
硬盤/光驅
硬盤容量 250GB
硬盤描述 SATA
光驅類型 DVD刻錄機
設計類型 光驅內置
顯卡/音效
顯卡類型 中低端獨立顯卡
顯卡芯片 NVIDIA GeForce 9300M GS
流處理器個數 16
顯存/位寬 256MB&#47......余下全文>>
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved