什麼時候陣列和指標相同

2021-07-23 02:20:48 字數 393 閱讀 9109

宣告或定義:

宣告:extern char a;不能改寫成指標的形式

定義:char a[10];不能改寫成指標的形式

函式引數:func(char a);可以選擇陣列形式或指標形式

在表示式中使用:

c = a[i];可以選擇陣列形式或指標形式

但是,陣列和指標在編譯器處理時是不同的,在執行時的表示形式也是不一樣的,並可能產生不同的**.對編譯器而言,乙個陣列就是乙個位址,乙個指標就是乙個位址的位址.因為要訪問陣列中某個值時,編譯器會根據陣列的位址加上偏移位址去記憶體相應的位址訪問位址的內容,而如果使用指標的話,編譯器會先根據指標的位址找到該指標,然後通過該指標加上偏移位址去記憶體相應的位址訪問位址的內容,相當於多了一次訪問操作,

參考

什麼時候使用引用 什麼時候使用指標

使用引用引數的主要原因有兩個 程式設計師能修改呼叫函式中的資料物件 通過傳遞引用而不是整個資料 物件,可以提高程式的執行速度一般的原則 對於使用引用的值而不做修改的函式 如果資料物件很小,如內建資料型別或者小型結構,則按照值傳遞 如果資料物件是陣列,則使用指標 唯一的選擇 並且指標宣告為指向cons...

什麼時候該使用指標和引用

引用是c 引入的新型別,所以c 引用的語義讓很多新手頗為頭疼。引用就是乙個物件的別名。對於乙個變數的引用進行操作,作用效果會直接反映到這個變數上。引用在宣告的時候必須要初始化,否則編譯器會提示錯誤,所以引用一定不為空。int i 20 int j i int k 錯誤,必須要初始化 j 引用j本身不...

和 什麼時候該用

struts2中有值堆疊和堆疊上下文的概念,你用 可以看出.s標籤中用 可以取出堆疊上下文中的存放的物件.用 可以取出存在值堆疊中的action物件,直接呼叫它的方法.例如你的action如果繼承了actionsupport 那麼在頁面標籤中,用 的方式可以拿出國際化資訊.就不太清楚了.肯定也是拿這...