C指針與數(shù)組學習(一)

前天看到一同事在研究指針世舰,當下好奇,就過去看了一眼槽卫,用來測試的代碼是這樣子的

例子1

 int TestDatas[5] = { 0, 1, 2, 3, 4 };
 printf("%8p\r\n", &TestDatas);
 printf("%8p\r\n", &TestDatas + 1);
 printf("%8p\r\n", *(&TestDatas + 1));
 printf("%8p\r\n", *(&TestDatas + 1) - 1);
 printf("%d\r\n", *(*(&TestDatas + 1) - 1));

然后他問我跟压,你知道每句輸出是什么嗎?我心中鄙視歼培,當然知道了震蒋,其結果不言而喻,我錯的很離譜躲庄,因當時在忙查剖,只能暫記心中,直到現(xiàn)在才有功夫來搭理它噪窘。
這小段代碼笋庄,其實是有問題的,先不管他是對是錯倔监,我們一行一行的來分析它直砂。
printf("%8p\r\n", &TestDatas);
&TestDatas 這個表明是取TestDatas這個數(shù)組的地址的,沒什么疑問浩习,主要是看下面這兩句

printf("%8p\r\n", &TestDatas + 1);
printf("%8p\r\n", *(&TestDatas + 1));

而我們出錯就容易錯在這兩句話上静暂,如果有些同學不小心,肯定以為這兩句打印出來就是首地址+1sizeof(int)谱秽,那這樣就錯了洽蛀,請看下圖

Paste_Image.png

為什么呢摹迷?為什么兩個都是地址,并且地址都一樣呢郊供?打印出的第二行峡碉,我們的預期是首地址+1
sizeof(int),但是為什么不是呢颂碘?我們拆開來分析一下异赫,TestDatas是地址吧,這個沒有什么疑問吧头岔,那&TestDatas就是數(shù)組地址的地址塔拳,也沒有問題吧,而數(shù)組占用的存儲空間是20個BYTE也沒有問題吧峡竣,那么+1靠抑,就是加一個數(shù)組的大小的空間,這樣就明白了适掰,為什么首地址是0x0043FDB4 +1 后就是0x0043FDC8了颂碧。

 printf("%8p\r\n", *(&TestDatas + 1));

就更有迷惑性了,有些同學可能張口就說类浪,這個打印出來的是1载城,那就大錯特錯了,這個地方需要重點注意费就,仔細點诉瓦,再仔細點,不要輕敵力细,同樣的睬澡,TestDatas 是地址,&TestDatas 是地址的地址眠蚂,那數(shù)組地址+1煞聪,就是加整個數(shù)組,然后再取地址的地址逝慧,結果當然還是地址了昔脯。若是這樣寫

 printf("%8p\r\n", *(TestDatas + 1));

那結果鐵定是1了。就是大部分人第一眼看到后心里想的結果了笛臣。

 printf("%8p\r\n", *(&TestDatas + 1) - 1);
 printf("%d\r\n", *(*(&TestDatas + 1) - 1));

這兩個就是中規(guī)中矩的了栅干,沒什么好說的取到下一個數(shù)據(jù)空間的首地址,然后再減去一個1*sizeof(int) 另外一個就是對這個地址取值了捐祠。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市桑李,隨后出現(xiàn)的幾起案子踱蛀,更是在濱河造成了極大的恐慌窿给,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件率拒,死亡現(xiàn)場離奇詭異崩泡,居然都是意外死亡,警方通過查閱死者的電腦和手機猬膨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門角撞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人勃痴,你說我怎么就攤上這事谒所。” “怎么了沛申?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵劣领,是天一觀的道長。 經常有香客問我铁材,道長尖淘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任著觉,我火速辦了婚禮村生,結果婚禮上,老公的妹妹穿的比我還像新娘饼丘。我一直安慰自己趁桃,他們只是感情好,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布葬毫。 她就那樣靜靜地躺著镇辉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贴捡。 梳的紋絲不亂的頭發(fā)上忽肛,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機與錄音烂斋,去河邊找鬼屹逛。 笑死,一個胖子當著我的面吹牛汛骂,可吹牛的內容都是我干的罕模。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼帘瞭,長吁一口氣:“原來是場噩夢啊……” “哼淑掌!你這毒婦竟也來了?” 一聲冷哼從身側響起蝶念,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤抛腕,失蹤者是張志新(化名)和其女友劉穎芋绸,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體担敌,經...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡摔敛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了全封。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片马昙。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖刹悴,靈堂內的尸體忽然破棺而出行楞,到底是詐尸還是另有隱情,我是刑警寧澤颂跨,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布敢伸,位于F島的核電站,受9級特大地震影響恒削,放射性物質發(fā)生泄漏池颈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一钓丰、第九天 我趴在偏房一處隱蔽的房頂上張望躯砰。 院中可真熱鬧,春花似錦携丁、人聲如沸琢歇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽李茫。三九已至,卻和暖如春肥橙,著一層夾襖步出監(jiān)牢的瞬間魄宏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工存筏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宠互,地道東北人。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓椭坚,卻偏偏與公主長得像予跌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子善茎,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內容