国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

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

2020-05-23 13:48:47
字體:
來源:轉載
供稿:網友

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)指針通常指向匿名數據;

         數組通常存放已知的。

 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 车致| 甘孜县| 万宁市| 洪洞县| 汉中市| 陆川县| 郁南县| 阿拉善左旗| 疏勒县| 佛坪县| 防城港市| 垣曲县| 广水市| 晋宁县| 舞阳县| 墨竹工卡县| 涟水县| 务川| 石棉县| 射阳县| 卢氏县| 苍山县| 东兴市| 布尔津县| 永寿县| 伊春市| 博客| 浦城县| 平湖市| 江津市| 堆龙德庆县| 交口县| 忻城县| 古丈县| 四会市| 拜城县| 辽中县| 石楼县| 乐东| 宜兰市| 高雄市|