指針

指針經(jīng)典題

思考:以下小程序厨喂,輸出結(jié)果是多少泉手?

    int numbers[4] = {10, 20, 30, 40, 50};

    int *p = (int *)(&numbers + 1);

    NSLog(@"%d", *(p - 1));

思路分析

首先分析一維數(shù)組

    int numbers[4] = {10, 20, 30, 40};

    NSLog(@"%p %p", numbers, numbers + 1);
    NSLog(@"%p %p", &numbers, &numbers + 1);
  • numbers : 存儲(chǔ)的是數(shù)組首元素的地址,相當(dāng)于&numbers[0]汇恤,等價(jià)于指向numbers[0]的指針,所以numbers + 1的跨度是整型數(shù)據(jù)10所占用的字節(jié)數(shù)索守;
  • &numbers : 等價(jià)于指向numbers數(shù)組的指針胜茧,所以&numbers + 1的跨度是整個(gè)數(shù)組numbers所占用的字節(jié)數(shù)媳瞪;

其次分析二維數(shù)組

     int numbers[2][2] = {
         {10, 20}, // numbers[0]
         {11, 22} // numbers[1]
        };
  • numbers[0] == &numbers[0][0],相當(dāng)于一個(gè)指向numbers[0][0]的指針骗炉;
  • numbers == &numbers[0],相當(dāng)于一個(gè)指向numbers[0]的指針
  • &numbers == 相當(dāng)于一個(gè)指向numbers的指針

最后分析三維數(shù)組

    int numbers[2][2][2] = {
        {
            {10, 11},
            {12, 13}
         },
         {
            {14, 15},
            {16, 17}
         }
        };
  • numbers[0][0] == &numbers[0][0][0],相當(dāng)于是一個(gè)指向numbers[0][0][0]的指針
  • numbers[1] == &numbers[1][0],相當(dāng)于是一個(gè)指向numbers[1][0]的指針
  • numbers == &numbers[0],相當(dāng)于是一個(gè)指向numbers[0]的指針
  • &numbers == 相當(dāng)于是一個(gè)指向numbers的指針

解答

    int numbers[4] = {10, 20, 30, 40, 50};

    int *p = (int *)(&numbers + 1);

    NSLog(@"%d", *(p - 1));
  • &numbers == 相當(dāng)于是一個(gè)指向numbers的指針的指針蛇受,&numbers + 1的跨度為整個(gè)數(shù)組numbers的字節(jié)句葵,(&numbers + 1)指向了數(shù)組的末尾
  • (int *)(&numbers + 1)將指向整個(gè)數(shù)組的指針強(qiáng)轉(zhuǎn)為指針整型的指針,它的跨度為int類型的字節(jié)
  • (p - 1)是指向了數(shù)據(jù)最后一個(gè)數(shù)據(jù)的指針,*p取得得數(shù)據(jù)是50乍丈;

結(jié)論

指針p的加減法運(yùn)算

  • 指針p + N
    • p里面存儲(chǔ)的地址值 + N * 指針?biāo)赶蝾愋偷恼加米止?jié)數(shù)
  • 指針p - N
    • p里面存儲(chǔ)的地址值 - N * 指針?biāo)赶蝾愋偷恼加米止?jié)數(shù)

數(shù)組名

  • 存儲(chǔ)的是數(shù)組首元素的地址
  • 等價(jià)于:一個(gè)指向數(shù)組首元素的指針
  • 數(shù)組名 + 1 的跨度:數(shù)組首元素的占用字節(jié)數(shù)

其他結(jié)論

  • &num + 1的跨度:num的占用字節(jié)數(shù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末剂碴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子轻专,更是在濱河造成了極大的恐慌忆矛,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件请垛,死亡現(xiàn)場(chǎng)離奇詭異催训,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)宗收,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門漫拭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人混稽,你說(shuō)我怎么就攤上這事采驻。” “怎么了匈勋?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵挑宠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我颓影,道長(zhǎng)各淀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任诡挂,我火速辦了婚禮碎浇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘璃俗。我一直安慰自己奴璃,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布城豁。 她就那樣靜靜地躺著苟穆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪唱星。 梳的紋絲不亂的頭發(fā)上雳旅,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音间聊,去河邊找鬼攒盈。 笑死,一個(gè)胖子當(dāng)著我的面吹牛哎榴,可吹牛的內(nèi)容都是我干的型豁。 我是一名探鬼主播僵蛛,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼迎变!你這毒婦竟也來(lái)了充尉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤衣形,失蹤者是張志新(化名)和其女友劉穎喉酌,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泵喘,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年般妙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了纪铺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡碟渺,死狀恐怖鲜锚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情苫拍,我是刑警寧澤芜繁,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站绒极,受9級(jí)特大地震影響骏令,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜垄提,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一榔袋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧铡俐,春花似錦凰兑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至滩报,卻和暖如春锅知,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脓钾。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工喉镰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惭笑。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓侣姆,卻偏偏與公主長(zhǎng)得像生真,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子捺宗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 指針是C語(yǔ)言中廣泛使用的一種數(shù)據(jù)類型柱蟀。 運(yùn)用指針編程是C語(yǔ)言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu)蚜厉; ...
    朱森閱讀 3,444評(píng)論 3 44
  • void* 類型指針:通用變體類型指針伶椿;可以不經(jīng)轉(zhuǎn)換辜伟,賦給其他指針,函數(shù)指針除外脊另;malloc返回的就是void*...
    冰吉凌閱讀 3,328評(píng)論 0 18
  • 前言:指針是 C語(yǔ)言一個(gè)重要概念导狡,也是C 語(yǔ)言的一個(gè)重要特色。使程序簡(jiǎn)潔偎痛、緊湊旱捧、高效。指針乃是C之精華踩麦。 數(shù)據(jù)在內(nèi)...
    瀟湘候晨雪閱讀 764評(píng)論 0 0
  • 指針 指針是什么 為了了解指針的概念廊佩,我們先來(lái)看一個(gè)小故事。話說(shuō)福爾摩斯派華生到威爾爵士居住的城堡去取回一個(gè)重要的...
    去留無(wú)意hmy閱讀 557評(píng)論 0 1
  • 指針p的加減法運(yùn)算 指針p + Np里面存儲(chǔ)的地址值 + N * 指針?biāo)赶蝾愋偷恼加米止?jié)數(shù) 指針p - Np里面...
    JaromeHuang閱讀 160評(píng)論 0 1