色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

Hi,歡迎來到嵌入式培訓高端品牌 - 華清遠見教育科技集團<北京總部官網>,專注嵌入式工程師培養15年!
當前位置: > 華清遠見教育科技集團 > 嵌入式學習 > 講師博文 > C語言聲明學習之初級篇
C語言聲明學習之初級篇
時間:2016-12-29作者:華清遠見

C語言為我們定義了四種基本數據類型:整型,浮點型,指針以及聚合類型(數組和結構體等),在此基礎上,我們就可以聲明變量。我們平時經常說定義一個某種類型的變量,其實這樣說不確切,應該說是聲明變量。
變量聲明的基本形式是:

說明符(一個或多個) 聲明表達式列表

比如說:int a, b, c, d;

C語言中對指針的聲明比較有代表性,我們來看一下:

比如聲明一個指向int型的指針a:int *a;

這個語句表示表達式*a產生的結果類型是int,而我們又知道*操作符執行的是間接訪問操作,所以可以推斷a肯定是一個指向int的指針。
C語言在本質上是一種自由形式的語言,它給了程序員很大的空間,我們同樣可以這樣寫:int* a,這個聲明與int *a時一個意思,而且似乎更為清楚,a被聲明為類型為int*的指針(實則不然),這會誘導我們這樣聲明三個指向int型的指針: 
        int* a, b, c; 
       也許你會很自然的以為這條語句把三個變量a、b、c都聲明為指向整型的指針,但是事實上我們被它的形式愚弄了,星號實際上是表達式*a的一部分,只對這個標識符有用,a是一個指針,但是b和c都只是普通的整型而已,要聲明三指針,這樣寫是可以的: 
        int *a, *b, *c;  
        從這個簡單的例子我們可以看出C語言的聲明規則多么具有迷惑性,呵呵,這也是C語言飽受批評的地方之一,但這決定與語言本身的設計哲學,我們無法改變,要想用好C語言,我們必須掌握它的語法規則。

我們再看一個例子: 
        int fun(); 
        我們都知道它把f聲明為一個函數,它的返回值是一個整數。
如果這樣寫: 
        int *fun(); 
        要想推斷出它的含義,我們必須知道*fun()是如何求值的。首先執行的是函數調用操作符(),因為它的優先級高于間接訪問操作符*,所以fun是一個函數,它的返回值類型是一個指向整型的指針。

再看一個更為有趣的聲明: 
        int (*fun)(); 
        這個聲明有兩對括號,每對括號的含義不同。第二對括號是函數調用操作符,但是第一對只起到聚組的作用。它導致間接訪問在函數調用之前進行,使fun是一個函數指針,它所指向的函數返回一個整型值。

那么現在這個聲明應該很容易分析出來了 
        int *(*fun)(); 
        fun還是一個函數指針,只是所指向的函數返回的是一個整型指針。

先寫到這里,對C語言的聲明之旅才剛剛開始,下回我們將在中級篇里討論更有趣的話題!

發表評論
評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
主站蜘蛛池模板: 亚洲精品AA片在线观看国产 | 国产重口老太和小伙A片 | 中文字幕aⅴ人妻一区二区 最新网址你懂得 | 桃花缘高清在线观看视频免费 | 日韩内射美女片在线观看网站 | 漂亮人妻洗澡被公强啪啪 | 亚洲av美国av产亚洲av | 大地资源第二页中文高清版 | 两性色黄视频在线观看 | 亚洲色中文字幕在线播放 | 欧美一级毛片在线播放 | 国产卡一卡二卡三无线乱码新区 | 亚洲日韩一区精品射精 | 精品国产乱码久久久久久浪潮小说 | 黑人异族巨大巨大巨粗 | 成人综合伊人五月婷久久 | 免费欧洲毛片A级视频老妇女 | 一区二区乱子伦在线播放 | 亚洲伊人久久大香线蕉AV | 在线不卡欧美 | 成人wwxx免费观看 | 国产三级在线观看播放视频 | 亚洲AV首页在线观看 | 久久99精品久久久久久清纯 | 小Sao货撅起屁股扒开c打视频 | 极品少妇高潮到爽 | 亚洲av无码不卡无码国产 | 怀孕挺大肚子疯狂高潮AV毛片 | 欧美三根一起进三p | 久青草国产在视频在线观看 | 麻豆传媒免费看 | 亚洲欧洲综合有码无码 | 中文字幕在线精品视频入口一区 | 香港三日本三级少妇三级视频 | 啦啦啦中文免费观看在线 | 亚洲国产综合精品中久 | 欧美又粗又大aaa片 韩国无码无遮挡在线观看 免费国产黄网站在线看 | 日韩在线看片免费人成视频播放 | 被添出水全过程免费视频 | 亚洲爆乳无码专区 | 日本50岁丰满熟妇xxxx |