日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

C語言學習篇(17)-----“指針數(shù)組”與“數(shù)組指針”

 拾叁億人 2022-05-21 發(fā)布于云南

之前我們說過指針和數(shù)組天生是聯(lián)系在一起的,因此兩者結(jié)合應用在實際工程項目代碼中也用的比較廣泛,同時在很多面試中,面試官也喜歡問“指針數(shù)組”和“數(shù)組指針”兩者的區(qū)別和應用。因此今天我們就來講講這兩者的區(qū)別和用法。

文章圖片1

指針數(shù)組和數(shù)組指針

本質(zhì)區(qū)別

指針數(shù)組:實質(zhì)是一個數(shù)組,指針是修飾詞,表明這個數(shù)組中存儲的內(nèi)容全部是指針變量

數(shù)組指針:實質(zhì)是一個指針,數(shù)組是修飾詞,表名這個指針指向的是一個數(shù)組

我們從以下幾個常見的表達式來分析:

int *p[5];int (*p)[5];int *(p[5]);

表達式分析

首先為了分析上面3個表達式, 我們需要說明表達式中出現(xiàn)的運算符(* 和 [])的優(yōu)先級。

文章圖片2

C語言運算符優(yōu)先級

從上面的圖中,我們可以看出優(yōu)先級:[] > *

OK, 接下來我們開始分析:

  • int *p[5]

因為[]的優(yōu)先級比*高,因此變量p先于[5]結(jié)合,故p是數(shù)組, 而int *就是修飾詞,總體就是p是一個數(shù)組,數(shù)組有5個元素,數(shù)組中的元素都是指針,指針指向的元素類型是int類型的;整個符號是一個指針數(shù)組。

  • int (*p)[5]

因為()的原因,p與*先結(jié)合,因此p是一個指針,然后再與[5]結(jié)合,此時的[5]并成了修飾詞;總體就是p是一個指針,指針指向一個數(shù)組,數(shù)組有5個元素,數(shù)組中存的元素是int類型; 整個符號是一個數(shù)組指針。

  • int *(p[5])

[]的優(yōu)先級本來就比*,再加上符號()的作用,p肯定先與[5]結(jié)合了,因此p是一個數(shù)組, int *是修飾詞,總體就是p是一個數(shù)組,數(shù)組有5個元素,數(shù)組中的元素都是指針,指針指向的元素類型是int類型的;這與第一種情況一致(其中運算符()可有可無),整個符號是一個指針數(shù)組。

總結(jié)

首先要知道一般規(guī)律:int *p;(p是一個指針); int p[5];(p是一個數(shù)組)

然后判斷核心(變量名p)與誰先結(jié)合,如果核心和*結(jié)合,表示核心是指針;如果核心和[]結(jié)合,表示核心是數(shù)組(找結(jié)合);之后再向外擴展(找修飾詞)。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多