<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. C語言

    C語言中指針與數組的詳解及區別

    時間:2025-02-20 18:23:52 C語言 我要投稿
    • 相關推薦

    C語言中指針與數組的詳解及區別

      本文是百分網小編整理的關于C語言重指針與數組的詳解及對比的相關資料,供參考學習,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!

      C語言 指針與數組的詳解及對比

      通俗理解數組指針和指針數組

      數組指針

      eg:int( *arr)[10];

      數組指針通俗理解就是這個數組作為指針,指向某一個變量。

      指針數組:

      eg:int*arr[10];

      指針數組簡言之就是存放指針的數組;

      ——數組并非指針&&指針并非數組

      (1)定義一個外部變量:

      eg:int value=10; int *p=&value;

      舉例:當需要在一個函數中用這個變量時:externa int*p;而非extern int p[];

      分析:當用:extern int p[];這樣的形式時,其實是:由于在定義這個變量的時候,是作為一個指針而定義的,則p指向的是 value的地址,當p當做一個數組被引入是,它其實存放的是value的地址,而并非指向value,導致調用出現錯誤。

      (2)定義一個外部變量:

      eg:int arr[10]={0};

      舉例:當需要在函數中引入這個外部變量時:extern int arr[10];而非extern int *arr;

      分析:當用extern int *arr;這樣的方式進行引入是,實際上這樣是不對的,在定義這個變量的時候是作為一個整形數組來定義的,但是在聲明的時候是用指針來聲明的,通過數組聲明可以訪問到整個數組,但是通過指針實際上聲明的指針并非指向數組,而是指向arr[10]數組中首元素arr[0]地址的指針,導致訪問出現問題。

      ——二維數組與指針的關系

      定義一個二維數組arr[3][3],由于二維數組在內存中也是按照順序存儲,而并非我們所認為的按照矩陣形式存儲的。所以,arr[3]其實就相當與一個數組指針;指向arr[0][0],arr[1][0],arr[2][0].

      ____數組與指針的其他區別

      (1) 指針保存的是數據的地址;

      數組是用來保存數據的。

      (2)指針訪問數據是通過數據的地址進行解引用,間接訪問的;

      數組訪問數據是直接的。

      (3)指針通常用于動態數據結構;

      數組用于存放固定數目而且類型相同的數據。

      (4)指針通常指向匿名數據;

      數組通常存放已知的。

    【C語言中指針與數組的詳解及區別】相關文章:

    C語言數組與指針詳解08-15

    c語言知識:數組指針和指針數組的區別07-27

    C語言中指針與數組的區別10-09

    C語言指針數組的概念07-19

    如何使用C語言數組指針09-14

    C語言-15:多維數組與指針07-25

    c語言指針中的二級指針示例詳解11-07

    C語言指針用法詳解08-21

    C語言的指針類型詳解05-21

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人