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

解讀C++中復雜的C/C++聲明

編輯:C++入門知識

怎麼去學習和理解C和C++的復雜類型聲明,下面的文章就開始一步一步教會你如何理解這種復雜的C/C++聲明, 本文將對C/C++聲明的深刻含義進行解說,並詳述C/C++聲明的使用方法與技巧

我們將從每天都能碰到的較簡單的聲明入手,然後逐步加入const修飾符和typedef,還有函數指針,最後介紹一個能夠讓你准確地理解任何C/C++聲明的“右左法則”。 需要強調一下的是。

復雜的C/C++聲明並不是好的編程風格;我這裡僅僅是教你如何去理解這些聲明。注意:為了保證能夠在同一行上顯示代碼和相關注釋,本文最好在至少1024x768分辨率的顯示器上閱讀。 讓我們從一個非常簡單的例子開始,如下:

  1. const int n=5; int const m=10

這個應該被理解為“declare p as an int *”p是一個int *型的變量),或者說p是一個指向一個int型變量的指針。我想在這裡展開討論一下:我覺得在聲明一個指針或引用)類型的變量時,最好將*或&)寫在緊靠變量之前,而不是緊跟基本類型之後。這樣可以避免一些理解上的誤區,比如:

  1. #include   <iostream.h>     
  2.  #include   <string>     
  3.  int   main()     
  4.  {     
  5.    string   word;     
  6.    while   (   cin   >>   word   )     
  7.                cout   <<   "word   read   is:   "   <<   word   <<   '\n';     
  8.      
  9.    cout   <<   "ok:   no   more   words   to   read:   bye!\n";     
  10.    return   0;     
  11.  }  

這裡,p被聲明為一個指向一個4元素int類型)數組的指針,而q被聲明為一個包含5個元素int類型的指針)的數組。另外,我們還可以在同一個聲明中混合實用*和&,如下:

  1. const int n=5; int const m=10

這裡p被聲明為一個函數指針,這個函數帶一個char類型的參數,並且有一個int類型的返回值。另外,帶有兩個float類型參數、返回值是char類型的指針的指針的函數指針可以聲明。

同樣,在C++中也是如此,如果你從學習C++一開始就抱著這種態度的話,那麼即便等到面試的時候被問到某個語言細節。你也可以胸有成竹的說你雖然並不知道這個細節,但在實際編碼中遇到相應問題的時候肯定會找到合適的參考資料並很快解決問題解決問題,才是最終目的)。

當然,更大的可能性是,你在平常編碼中已經接觸過了最常見的那80%的陷阱和技巧了,由於你用的是實踐指導性的學習方式,所以你遇到的需要去學習的陷阱和技巧幾乎肯定都是常見場景下的。比沒頭蒼蠅似的逮住一本C/C++“經典”就“細細研讀”的辦法要高效N倍,因為在沒有實踐經驗的情況下,你很可能會認為其中的每個技巧,每個陷阱,都是同樣概率發作的。

  1. 簡介學習C++總結之談
  2. 對C++庫函數進行學習探索總結筆記
  3. C++類庫設計的基本構思與方法
  4. C++語言真的還有市場價值?
  5. C++類庫設計的基本構思與方法

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