我們知道數組名就是指針,可是兩者有什么統一性呢,有什么聯系呢?可不成以互相轉換呢?下面我就來具體地說一說。
數組名是個指針常量,保留的是數組的首地址,即“數組第一個元素的肇端地址”,為什么這么說呢?因為數組的元素可能是整形,字符型,假如是整形,那么一個元素占4個字節,而每個字節都對應一個地址,那么數組名保留的地址是哪個呢?是第一個元素的第一個字節的地址。
既然數組名是指針了,那么可不成以將數組名賦給一個指針?
然后用這個指針來操作整個數組呢?
謎底是必定的。
數組名是指針,可以利用a[i]這樣的操作,那么同類型指針p可不成以利用p[i]來取代 *(p+i) 呢?
謎底是必定的。
詮釋一下,指針進行p+1操尷尬刁難于分歧類型的p是分歧的,具體看存儲分歧類型的數據需要幾多個字節。
兩個不異類型的指針只能進行減操作;相加,相乘和相除是沒有意義的。
相信大師已經知道了數組名和指針的不異的處所;
下面說下分歧的處所:
數組名半斤八兩于 類型* const p;
通俗指針是 類型* p;
也就是說,數組名a只有“可讀權限”,沒有“可寫權限”,是指針常量。
a++; a = p; 等等均是不成以的。
而通俗指針是可以的。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!