溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解C++中復雜的C/C++聲明

發(fā)布時間:2021-10-27 17:55:48 來源:億速云 閱讀:108 作者:柒染 欄目:編程語言

如何理解C++中復雜的C/C++聲明,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

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

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

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

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

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

#include   <iostream.h>      #include   <string>      int   main()      {        string   word;        while   (   cin   >>   word   )                    cout   <<   "word   read   is:   "   <<   word   <<   '\n';             cout   <<   "ok:   no   more   words   to   read:   bye!\n";        return   0;      }

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

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

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

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

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

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI