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

首頁 > 編程 > C > 正文

C語言 指針與數(shù)組的詳解及區(qū)別

2020-01-26 14:13:11
字體:
供稿:網(wǎng)友

C語言 指針與數(shù)組的詳解及對比

通俗理解數(shù)組指針和指針數(shù)組

數(shù)組指針:

eg:int( *arr)[10];

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

指針數(shù)組:

eg:int*arr[10];

指針數(shù)組簡言之就是存放指針的數(shù)組;

――數(shù)組并非指針&&指針并非數(shù)組

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

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

        舉例:當(dāng)需要在一個函數(shù)中用這個變量時:externa int*p;而非extern int p[];

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

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

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

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

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

――二維數(shù)組與指針的關(guān)系

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

____數(shù)組與指針的其他區(qū)別

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

          數(shù)組是用來保存數(shù)據(jù)的。

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

         數(shù)組訪問數(shù)據(jù)是直接的。

(3)指針通常用于動態(tài)數(shù)據(jù)結(jié)構(gòu);

         數(shù)組用于存放固定數(shù)目而且類型相同的數(shù)據(jù)。

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

         數(shù)組通常存放已知的。

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 富阳市| 滁州市| 洛宁县| 和平县| 萍乡市| 都江堰市| 朝阳区| 荔浦县| 河西区| 来安县| 汨罗市| 毕节市| 芒康县| 桐梓县| 汕头市| 峡江县| 肥西县| 高淳县| 侯马市| 清涧县| 郴州市| 拜泉县| 资阳市| 内丘县| 织金县| 莎车县| 许昌市| 通州区| 长春市| 桑日县| 鄂伦春自治旗| 正镶白旗| 西平县| 北碚区| 枣阳市| 贞丰县| 鄂尔多斯市| 阿拉善右旗| 沾益县| 广饶县| 石林|