當前位置:
首頁 > 知識 > C語言中的說明符講解

C語言中的說明符講解


C語言允許程序說明值的數組、指向值的指針和函數=返回指定類型的值。為說明這些,就必須使用「說明符」。說明符輔以方括弧([])、括弧和星號(*)以說明數組、指計或函數類型的標識符。


指針、數組和函數說明符


當說明符由一個沒有輔以其它符號的標識符時,被說明的項就是標識符指定的類型。如果星號(*)出現在該項左部,那麼它的類型就變成了指針類型;如果該項之後跟以方括弧([]),那麼它的類型就是數組類型;如果該項之後跟以圓括弧,那麼它的類型就是函數=返回值的類型。一個說明符並不能構成一個完整說明,必需要有類型區分符。類型區分符給出了數組元素的類型、指針所指向的元素的類型以及函數的返回值的類型。

複合說明符


任何說明符都可以括在括弧之內,正如下面所介紹的,括弧典型的用途是指明對一個複合說明符的特殊的解釋方法。複合說明符是經多個數組、指針或函數修飾符修飾以後的標識符。


可以把數組、指針和函數的任何一種組合作用於一個標識符,但有些組合是非法的,數組不能由函數構成,函數也不能返回一個數組或函數。


在解釋複合說明符時,方括弧和圓括弧(在標識符的右部)優先於星號(在標識符的左部),而方括弧和圓括弧以相同的優先順序從左向右結合。當解釋完說明符後,類型區分符最後才起作用。可以用圓括弧改變約定的結合順序而進行特殊的解釋。

在解釋說明符時,一條很有用的規則是「從裡向外讀」。從標識符開始,先看它右部是否有方括弧或圓括弧,如果有的話,先做出解釋,再去左部看是否有星號。如果在任何時候遇到了閉括弧,則在繼續之前必須用相同的規則處理括弧內的內容。而最後一步是加入類型區分符。


在第一個例子中,數組修飾符比指針修飾符的優先順序高,所以把var說明成數組。指針修飾符作用於數組元素的類型,而元素是指向int值的指針。


在第二個例子中,圓括弧改變了上述說明中的含意,即指針修飾符的優先順序髙於數組修飾符,於是,被說明成指向一個有5個im值的數組的指針。


函數修飾符的優先順序也比指針修飾符高,所以第三個例子把var說明成一個函數,其返回值為指向類型的指針,而該函數有兩個long類型的自變數。第四個例子類似於第二個例子,圓括弧使得指針修飾符比函數修飾符的優先順序高,於是,var說明成一個指向返回值為long類型的函數的指針,而該函數也有兩個long類型的自變數。數組元素不能是函數,但是第五個例子演示了如何說明一個其元素為指向函數的指針的數組。在本例中,var被說明成由指向函數的指針構成的數組,該函數返回有兩個成員的結構。函數的自變數被說明成是兩個具有同樣結構類型both的結構。注意「*var[]」兩邊的圓括弧是必須的,沒有它們,說明就成了企圖說明一個函數數組的非法說明。 第六個例子介紹如何說明一個返回指向數組的指針的函數,因為函數返回數組是非法的。這裡var被說明成一個返回指針的函數,該指針指向一個有3個double值的數組。函數var有一個自變數,它和返回值一樣,也是一個有3個double值的數組。自變數的類型由複合說明符給出。自變數類型中,星號兩側的圓括弧是必須的,沒有它們,自變數的類型就成了三個指向double值的指針數組。「類型名字」中的討論和示例。如第七個例子所示那樣,指針可以指向另一個指針,數組的元素可以是數組。這裡,var是一個5元素的數組,每個元素又是一個5元素的指針數組,該指針又指向有兩個成員的聯合的指針。 第八個例子表明括弧的位置將怎樣改變說明的含意。在這裡,var被說明成5個元素的指針數組,指針指向5個元素的指針數組,而該指針又指向聯合。



C語言中的說明符講解


想要一起學習C++的可以加裙二四八八九四四三零,裙內有各種資料滿足大家,歡迎加裙

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 C加加 的精彩文章:

C語言打造——遊戲場景裡面的人物行走

TAG:C加加 |

您可能感興趣

王美 說明書說不明
說王晶導演沒資格談情懷?!那說明你對香港電影很無知
《三諦智炬》內容說明
說明文寫作:《我的藍黛蓮》
陳剛大夫講糖:舉例說明,按照說明書用藥,有時候並不科學
說明文考點之一-明確說明對象
無圖純吐槽:我與簽證表格及各種說明書的「恩恩怨怨」
說明書中存在一致表述=權利要求得到說明書支持?
歐美棒針編織符號說明
女神使用說明書
且說明朝的那些忠與奸
世界盃前瞻——阿根廷的「使用說明書」
電腦CPU及其天梯圖、發展史與參數說明全講解
肺結核說明書
說明書——關於如何使用我
每天12條哲理:真正的愛情是不能用言語表達的,行為才是忠心的最好說明
《西遊記》中豬八戒原來這麼強 他對孫悟空說的這句話早已說明了問題
為什麼說明朝的宦官亂政是由明英宗朱祁鎮引起的呢
《好好說話》《好好聽話》正版與盜版對比說明
SJ中變化最大的人是銀赫-藝聲?用過去照片說明事實