99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

數(shù)組和指針不相同嗎?數(shù)組和指針有哪些區(qū)別

學(xué)益得智能硬件 ? 來源:學(xué)益得智能硬件 ? 2023-12-13 16:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

數(shù)組就是指針,指針就是數(shù)組,這樣的言論在評(píng)論區(qū)看到不下于10次。

翻開《C專家編程》,來到第四章,標(biāo)題非常醒目:

令人震驚的事實(shí),數(shù)組和指針并不相同。

之前的視頻我們講過,數(shù)組可以用指針來表示,指針也可以用數(shù)組的形式來訪問,今天再來盤點(diǎn)一下,數(shù)組和指針有哪些區(qū)別。

第一個(gè)聲明的方式不一樣。

比如在 1.c 文件中定一個(gè)全局?jǐn)?shù)組:

如果想在 2.c 文件中使用,那么只能寫成這樣:

extern int array[];

如果寫成:

extern int *array;

程序就會(huì)崩潰。

雖然編譯沒有問題,但是運(yùn)行的時(shí)候,array 可能就是個(gè)空指針。

第二個(gè)訪問的方式也不一樣。

對(duì)于數(shù)組來說,先是取下標(biāo)的值,然后跟數(shù)組首元素的地址相加,最后取對(duì)應(yīng)地址里面的內(nèi)容。

wKgZomV5bNWAKk-MAAiwLZWOrIE597.jpg

指針則是先取指針變量里面的地址,然后再取對(duì)應(yīng)地址里面的內(nèi)容。

wKgaomV5bNWAW_OaAAjqlqhu_oQ050.jpg

第三個(gè)也是它們最本質(zhì)的區(qū)別,數(shù)組用于保存數(shù)據(jù),指針用于保存數(shù)據(jù)的地址。

第四個(gè)使用場(chǎng)景不同。

指針常用于動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),配合 malloc 和 free 函數(shù),根據(jù)實(shí)際情況分配和釋放內(nèi)存;數(shù)組通常用于存儲(chǔ)固定數(shù)目,且數(shù)據(jù)類型相同的元素,內(nèi)存一般隱式分配和刪除。

數(shù)組和指針,日常使用中盡管看上去一樣,但是底層實(shí)現(xiàn)的機(jī)制卻不同。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    420

    瀏覽量

    26551

原文標(biāo)題:令人震驚的事實(shí):數(shù)組和指針并不相同

文章出處:【微信號(hào):學(xué)益得智能硬件,微信公眾號(hào):學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    周立功教你學(xué)C語言編程:教你數(shù)組是如何保存指針

    雖然數(shù)組指針數(shù)組存儲(chǔ)的都是數(shù)據(jù),但還是細(xì)微的差別。數(shù)組存儲(chǔ)的是相同類型的字符或數(shù)值,而
    的頭像 發(fā)表于 08-31 10:09 ?7265次閱讀
    周立功教你學(xué)C語言編程:教你<b class='flag-5'>數(shù)組</b>是如何保存<b class='flag-5'>指針</b>的

    C語言中指針數(shù)組數(shù)組指針區(qū)別

    指針數(shù)組之間存在著緊密的關(guān)系。在本文中,我們將探討指針數(shù)組的關(guān)系、指針算術(shù)和數(shù)組遍歷、多維
    發(fā)表于 08-17 15:29 ?634次閱讀

    指針數(shù)組數(shù)組指針什么區(qū)別和聯(lián)系呢

    什么是指針數(shù)組數(shù)組指針?指針數(shù)組數(shù)組
    發(fā)表于 12-24 06:55

    數(shù)組指針的詳細(xì)講解

    數(shù)組指針的詳細(xì)講解
    發(fā)表于 10-16 08:44 ?0次下載

    指針數(shù)組都是C語言的精髓所在 兩者何聯(lián)系區(qū)別

    指針數(shù)組都是C語言的精髓所在,對(duì)于很多C程序員來說,如果你問這樣一個(gè)問題:數(shù)組指針什么區(qū)別
    的頭像 發(fā)表于 05-27 14:51 ?4550次閱讀
    <b class='flag-5'>指針</b>和<b class='flag-5'>數(shù)組</b>都是C語言的精髓所在 兩者<b class='flag-5'>有</b>何聯(lián)系<b class='flag-5'>區(qū)別</b>

    詳談數(shù)組指針區(qū)別與聯(lián)系

    詳談數(shù)組指針區(qū)別與聯(lián)系
    的頭像 發(fā)表于 06-29 15:18 ?2.3w次閱讀
    詳談<b class='flag-5'>數(shù)組</b>和<b class='flag-5'>指針</b>的<b class='flag-5'>區(qū)別</b>與聯(lián)系

    指針數(shù)組數(shù)組指針區(qū)別

    這里我們區(qū)分兩個(gè)重要的概念:指針數(shù)組、數(shù)組指針
    的頭像 發(fā)表于 06-29 15:30 ?2.1w次閱讀
    <b class='flag-5'>指針</b><b class='flag-5'>數(shù)組</b>和<b class='flag-5'>數(shù)組</b><b class='flag-5'>指針</b>的<b class='flag-5'>區(qū)別</b>

    理解函數(shù)指針、函數(shù)指針數(shù)組、函數(shù)指針數(shù)組指針

    理解函數(shù)指針、函數(shù)指針數(shù)組、函數(shù)指針數(shù)組指針
    的頭像 發(fā)表于 06-29 15:38 ?1.5w次閱讀
    理解函數(shù)<b class='flag-5'>指針</b>、函數(shù)<b class='flag-5'>指針</b><b class='flag-5'>數(shù)組</b>、函數(shù)<b class='flag-5'>指針</b><b class='flag-5'>數(shù)組</b>的<b class='flag-5'>指針</b>

    C語言指針數(shù)組區(qū)別

    在C語言教程中我們使用通過數(shù)組名通過偏移和指針偏移都可以遍歷數(shù)組,那么指針數(shù)組到底什么
    的頭像 發(fā)表于 07-18 16:29 ?2288次閱讀

    二維數(shù)組數(shù)組指針以及指針數(shù)組

    二維數(shù)組數(shù)組指針以及指針數(shù)組
    的頭像 發(fā)表于 08-16 09:02 ?3174次閱讀

    【C語言進(jìn)階】“數(shù)組指針”和“指針數(shù)組”都是啥跟啥?

    【C語言進(jìn)階】“數(shù)組指針”和“指針數(shù)組”都是啥跟啥?
    的頭像 發(fā)表于 08-31 13:21 ?2223次閱讀

    C語言中的char數(shù)組和char指針什么區(qū)別?

    讓我們通過下面的例子,來了解 C語言中字符數(shù)組和字符指針之間的區(qū)別。
    的頭像 發(fā)表于 01-29 16:35 ?3218次閱讀

    數(shù)組指針不能混用的情況

    指針的基本概念。數(shù)組是一組相同類型的元素的集合,而指針是一個(gè)變量,它存儲(chǔ)了一個(gè)地址,該地址指向內(nèi)存中的某個(gè)位置。在 C/C++ 中,數(shù)組
    的頭像 發(fā)表于 12-07 13:46 ?960次閱讀

    面試常考+1:函數(shù)指針指針函數(shù)、數(shù)組指針指針數(shù)組

    在嵌入式開發(fā)領(lǐng)域,函數(shù)指針、指針函數(shù)、數(shù)組指針指針數(shù)組是一些非常重要但又容易混淆的概念。理解它
    的頭像 發(fā)表于 08-10 08:11 ?1459次閱讀
    面試???1:函數(shù)<b class='flag-5'>指針</b>與<b class='flag-5'>指針</b>函數(shù)、<b class='flag-5'>數(shù)組</b><b class='flag-5'>指針</b>與<b class='flag-5'>指針</b><b class='flag-5'>數(shù)組</b>

    指針數(shù)組和二維數(shù)組有沒有區(qū)別

    指針數(shù)組和二維數(shù)組有沒有區(qū)別?比如這樣的兩個(gè)代碼。 int main(){ char *s1[] = { "hello", "world", "total" }; char s2[][
    的頭像 發(fā)表于 11-24 11:12 ?546次閱讀