數(shù)組是用指針方式實現(xiàn)的,但數(shù)組值是一個常量,即不能改變數(shù)組的首地址,而指針是一個變量,可以改變它的值;如:數(shù)組 a和指針p,p=a+1;是合法的,但a=a+1;是不合法的。
站在用戶的角度思考問題,與客戶深入溝通,找到潛山網(wǎng)站設(shè)計與潛山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站制作、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋潛山地區(qū)。
數(shù)組和指針是不同的。定義一個數(shù)組就為數(shù)組劃分了一段內(nèi)存空間,而指針是不占用內(nèi)存空間的,除非是用malloc等類似函數(shù)為其分配內(nèi)存空間。
數(shù)組名本質(zhì)上就是個指針,也就是地址,但是它是一個常指針,是個固定值,而指針是是指針變量的簡稱,是個變量,這個變量存放的是地址值,它的值是可以改變的。
(注意,不同目標(biāo)平臺指針長度可能不同,所以sizeof(void*)是最準(zhǔn)確的回答)4,(可能是考試內(nèi)容,對于正確性就呵呵)指針是間接訪問,數(shù)組是直接訪問。如果你對C語言有深入學(xué)習(xí)的想法,務(wù)必去了解一下C語言的ISO標(biāo)準(zhǔn)。
char a[]是字符數(shù)組,char *a[]是指向字符串的指針數(shù)組。所以給字符串賦值char a[]={I, ,a,m, ,h,a,p,p,y};是正確的,相當(dāng)于初始化一個字符串。
0]的地址),數(shù)組名是一個指針常量,在運行過程中不能改變其值(如上:a的值是&a[0],若有a=&a[2]:則報錯)。他們的區(qū)別:數(shù)組名是一個指針常量,而指針可分為:指針常量和指針變量。我想你應(yīng)該明白了。
什么時候都可以用指針,因為用指針的效率比用變量高。當(dāng)一個函數(shù)要返回1個以上的運算結(jié)果時,就必須用指針,因為一個函數(shù)只能返回一個值,更多的得用指針“帶回”。
總結(jié):不僅數(shù)組有指針,所有變量都有指針,指針說白了就是內(nèi)存中的地址,就像一個房間必須有一個房間號。
指針就是一個裝地址的變量,數(shù)組是內(nèi)存中的一個區(qū)域,而數(shù)組名是這個區(qū)域的首地址。
1、指針就是一個裝地址的變量,數(shù)組是內(nèi)存中的一個區(qū)域,而數(shù)組名是這個區(qū)域的首地址。
2、1,數(shù)組直接儲存對象,指針則是指向一個對象。2,數(shù)組名不能被賦值,指針變量能。3,sizeof一個數(shù)組,得到數(shù)組的長度(字節(jié)單位),sizeof一個指針,相當(dāng)于sizeof(void*)。
3、C語言中,數(shù)組的名稱等價于數(shù)組的首地址,當(dāng)然可以利用指針開辟動態(tài)空間,使用方式與數(shù)組在形式上相同的,但是他們有一個本質(zhì)的區(qū)別,數(shù)組名相當(dāng)于一個地址常數(shù),而指針是一個以地址為內(nèi)容的變量。
4、數(shù)組名本質(zhì)上就是個指針,也就是地址,但是它是一個常指針,是個固定值,而指針是是指針變量的簡稱,是個變量,這個變量存放的是地址值,它的值是可以改變的。