- 相關(guān)推薦
C語言中指針與數(shù)組的區(qū)別
通俗理解數(shù)組指針和指針數(shù)組,C語言中指針與數(shù)組有什么區(qū)別呢?應(yīng)該怎么去區(qū)分?下面是小編為大家整理的C語言中指針與數(shù)組的區(qū)別,歡迎參考~
通俗理解數(shù)組指針和指針數(shù)組
數(shù)組指針:
eg:int( *arr)[10];
數(shù)組指針通俗理解就是這個(gè)數(shù)組作為指針,指向某一個(gè)變量。
指針數(shù)組:
eg:int*arr[10];
指針數(shù)組簡(jiǎn)言之就是存放指針的數(shù)組;
——數(shù)組并非指針&&指針并非數(shù)組
。1)定義一個(gè)外部變量:
eg:int value=10; int *p=&value;
舉例:當(dāng)需要在一個(gè)函數(shù)中用這個(gè)變量時(shí):externa int*p;而非extern int p[];
分析:當(dāng)用:extern int p[];這樣的形式時(shí),其實(shí)是:由于在定義這個(gè)變量的時(shí)候,是作為一個(gè)指針而定義的,則p指向的是 value的地址,當(dāng)p當(dāng)做一個(gè)數(shù)組被引入是,它其實(shí)存放的是value的地址,而并非指向value,導(dǎo)致調(diào)用出現(xiàn)錯(cuò)誤。
。2)定義一個(gè)外部變量:
eg:int arr[10]={0};
舉例:當(dāng)需要在函數(shù)中引入這個(gè)外部變量時(shí):extern int arr[10];而非extern int *arr;
分析:當(dāng)用extern int *arr;這樣的方式進(jìn)行引入是,實(shí)際上這樣是不對(duì)的,在定義這個(gè)變量的時(shí)候是作為一個(gè)整形數(shù)組來定義的,但是在聲明的時(shí)候是用指針來聲明的,通過數(shù)組聲明可以訪問到整個(gè)數(shù)組,但是通過指針實(shí)際上聲明的指針并非指向數(shù)組,而是指向arr[10]數(shù)組中首元素arr[0]地址的指針,導(dǎo)致訪問出現(xiàn)問題。
——二維數(shù)組與指針的關(guān)系
定義一個(gè)二維數(shù)組arr[3][3],由于二維數(shù)組在內(nèi)存中也是按照順序存儲(chǔ),而并非我們所認(rèn)為的按照矩陣形式存儲(chǔ)的。所以,arr[3]其實(shí)就相當(dāng)與一個(gè)數(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)指針通常用于動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu);
數(shù)組用于存放固定數(shù)目而且類型相同的數(shù)據(jù)。
(4)指針通常指向匿名數(shù)據(jù);
數(shù)組通常存放已知的。
C語言簡(jiǎn)介
C語言是一門面向過程的計(jì)算機(jī)編程語言,與C++、C#、Java等面向?qū)ο缶幊陶Z言有所不同。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、僅產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。C語言描述問題比匯編語言迅速、工作量小、可讀性好、易于調(diào)試、修改和移植,而代碼質(zhì)量與匯編語言相當(dāng)。C語言一般只比匯編語言代碼生成的目標(biāo)程序效率低10%-20%。因此,C語言可以編寫系統(tǒng)軟件。
當(dāng)前階段,在編程領(lǐng)域中,C語言的運(yùn)用非常之多,它兼顧了高級(jí)語言和匯編語言的優(yōu)點(diǎn),相較于其它編程語言具有較大優(yōu)勢(shì)。計(jì)算機(jī)系統(tǒng)設(shè)計(jì)以及應(yīng)用程序編寫是C語言應(yīng)用的兩大領(lǐng)域。同時(shí),C語言的普適較強(qiáng),在許多計(jì)算機(jī)操作系統(tǒng)中都能夠得到適用,且效率顯著。
C語言擁有經(jīng)過了漫長(zhǎng)發(fā)展歷史的完整的理論體系,在編程語言中具有舉足輕重的地位。
【C語言中指針與數(shù)組的區(qū)別】相關(guān)文章:
c語言知識(shí):數(shù)組指針和指針數(shù)組的區(qū)別07-27
C語言數(shù)組與指針詳解08-15
C語言指針數(shù)組的概念07-19
如何使用C語言數(shù)組指針09-14
C語言-15:多維數(shù)組與指針07-25
C語言指針和數(shù)組的學(xué)習(xí)方法10-16
c語言數(shù)組指針變量的說明和使用07-26