陣列中括號與指標關係 陣列名常量指標分析

2021-07-15 23:41:10 字數 787 閱讀 7903

一、陣列中括號與指標的關係

1、的本質和 *p 是一樣的,只不過符合程式設計師的閱讀習慣。

2、buf5是乙個指標(陣列首元素的位址),是唯讀的常量,即buf5是乙個常量指標

c編譯器這樣做的原因:為了保證,在析構記憶體的時候,buf5所指向的記憶體空間安全釋放。

若buf5可以改變,假設加上了64,那麼在析構其所指向的記憶體空間時,只能析構掉從buf5(64)開始到128的這部分,而無法析構掉前面的一部分

3、p普通指標可以加減,但是陣列首元素的位址不可以加減(因為是常量指標)。

//通過陣列下標和指標

void main()

printf("\n");

p = buf5; //「buf5代表陣列的位址」這句話是錯誤的

// buf5代表的應該是陣列首元素的位址

for( i=0; i

printf("\n");

for( i=0; i

printf("\n");

// 和 * 的推導過程

// buf5[i] --> buf5[0+i] --> *(buf5+i)

system("pause");

return;

}

陣列名與指標的關係

陣列名與指標間的聯絡 陣列名與指標間的區別分析總結 在剛剛接觸到陣列與指標時,我想最常苦惱的問題就是陣列名與指標之間有什麼關係了吧。但是他們兩者之間真的有什麼數不清道不明的關係嗎?答案無疑是否定的,接下來就讓我們來一 竟吧!首先我們需要了解一下陣列與指標的定義 陣列名與指標間的聯絡 從定義中分析,不...

指標與陣列名的關係

1.對於一維陣列 a 10 一級指標p p a 把陣列名 常量位址 賦值給了指標p 正確 因為p是int指標,而陣列名相當於int 常量,所以正確。p a 編譯時就會出現錯誤,會顯示警告 從不相容的指標型別賦值。那是因為 a是取陣列a的位址,相當於int 10 型別的陣列指標,而指標p只是普通的一級...

陣列名與指標

引言 指標是c c 語言的特色,而陣列名與指標有太多的相似,甚至很多時候,陣列名可以作為指標使用。於是乎,很多程式設計者就被搞糊塗了。而許多的大學老師,他們在c語言的教學過程中也錯誤得給學生講解 陣列名就是指標 很幸運,我的大學老師就是其中之一。時至今日,我日復一日地進行著c c 專案的開發,而身邊...