<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

數組和指針不相同嗎?數組和指針有哪些區別

學益得智能硬件 ? 來源:學益得智能硬件 ? 2023-12-13 16:34 ? 次閱讀

數組就是指針,指針就是數組,這樣的言論在評論區看到不下于10次。

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

令人震驚的事實,數組和指針并不相同。

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

第一個聲明的方式不一樣。

比如在 1.c 文件中定一個全局數組:

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

extern int array[];

如果寫成:

extern int *array;

程序就會崩潰。

雖然編譯沒有問題,但是運行的時候,array 可能就是個空指針。

第二個訪問的方式也不一樣。

對于數組來說,先是取下標的值,然后跟數組首元素的地址相加,最后取對應地址里面的內容。

wKgZomV5bNWAKk-MAAiwLZWOrIE597.jpg

指針則是先取指針變量里面的地址,然后再取對應地址里面的內容。

wKgaomV5bNWAW_OaAAjqlqhu_oQ050.jpg

第三個也是它們最本質的區別,數組用于保存數據,指針用于保存數據的地址。

第四個使用場景不同。

指針常用于動態數據結構,配合 malloc 和 free 函數,根據實際情況分配和釋放內存;數組通常用于存儲固定數目,且數據類型相同的元素,內存一般隱式分配和刪除。

數組和指針,日常使用中盡管看上去一樣,但是底層實現的機制卻不同。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數組
    +關注

    關注

    1

    文章

    409

    瀏覽量

    25659

原文標題:令人震驚的事實:數組和指針并不相同

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    周立功教你學C語言編程:教你數組是如何保存指針

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

    C語言數組指針區別

    大家好,我是嵌入式老林,從事嵌入式軟件開發多年,今天分享的內容是C語言數組指針區別,希望能對你有所幫助。
    發表于 07-11 12:40 ?295次閱讀
    C語言<b class='flag-5'>數組</b>和<b class='flag-5'>指針</b>的<b class='flag-5'>區別</b>

    C語言中指針數組數組指針區別

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

    指針數組數組指針區別

    int (*p)[4];// 定義一個數組指針,指向含4個元素的一維數組,數組元素是int類型。int *p[4];// 定義一個指針
    發表于 07-15 21:41

    指針數組數組指針及其函數指針區別

    進程的五種狀態模型分別是哪些呢?指針數組數組指針及其函數指針
    發表于 12-24 07:28

    指針數組數組指針什么區別和聯系呢

    什么是指針數組數組指針?指針數組數組
    發表于 12-24 06:55

    指針數組都是C語言的精髓所在 兩者有何聯系區別

    指針數組都是C語言的精髓所在,對于很多C程序員來說,如果你問這樣一個問題:數組指針有什么區別?他們的答案很可能是:”
    的頭像 發表于 05-27 14:51 ?3116次閱讀
    <b class='flag-5'>指針</b>和<b class='flag-5'>數組</b>都是C語言的精髓所在 兩者有何聯系<b class='flag-5'>區別</b>

    詳談數組指針區別與聯系

    詳談數組指針區別與聯系
    的頭像 發表于 06-29 15:18 ?2.2w次閱讀
    詳談<b class='flag-5'>數組</b>和<b class='flag-5'>指針</b>的<b class='flag-5'>區別</b>與聯系

    指針數組數組指針區別

    這里我們區分兩個重要的概念:指針數組、數組指針。
    的頭像 發表于 06-29 15:30 ?1.9w次閱讀
    <b class='flag-5'>指針</b><b class='flag-5'>數組</b>和<b class='flag-5'>數組</b><b class='flag-5'>指針</b>的<b class='flag-5'>區別</b>

    理解函數指針、函數指針數組、函數指針數組指針

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

    C語言指針數組區別

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

    二維數組數組指針以及指針數組

    二維數組數組指針以及指針數組
    的頭像 發表于 08-16 09:02 ?2302次閱讀

    【C語言進階】“數組指針”和“指針數組”都是啥跟啥?

    【C語言進階】“數組指針”和“指針數組”都是啥跟啥?
    的頭像 發表于 08-31 13:21 ?1716次閱讀

    C語言中什么是指針數組

    在C語言中一個數組,若其元素均為指針類型數據,稱為指針數組,也就是說,指針數組中的每一個元素都存
    的頭像 發表于 03-10 15:26 ?1381次閱讀

    數組指針不能混用的情況

    指針的基本概念。數組是一組相同類型的元素的集合,而指針是一個變量,它存儲了一個地址,該地址指向內存中的某個位置。在 C/C++ 中,數組
    的頭像 發表于 12-07 13:46 ?360次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>