在進行如題操作之前,我們先了解一下指標和陣列的本質。
1、指標本身是乙個變數,值是乙個儲存單元的位址。
2、指標的值可以發生改變。
3、多個指標可以指向同一塊儲存單元。
4、指標必須有型別,如 int 型別。
讀完上面這些話,是不是有點明白指標的意義了。
「陣列名」本身就是乙個指標常量(不理解「指標常量」的同學,可以先學習一下),陣列名的值永遠不會發生改變,只能是陣列第乙個元素的位址。
舉個例子:int arr[3] = ; 其陣列名arr本身是乙個指標常量,它永遠指向「1」的儲存單元位址。
讀完上述內容,很容易就會發現乙個共同點:「指標」和「陣列名」都是某個元素的儲存單元位址。可想而知,兩者雖然不同,但在這一點上還是可以互通的。
接下來直接上**:
int
main()
;int
*pt = arr;
*pt =11;
// 修改下標0元素*(
++pt)=12
;// 修改下標1元素
--pt;
// 切記 ++pt後,pt指向的位址發生了改變,要--pt回到之前的位置
pt[2]
=13;// 修改下標2元素
for(
int i=
0; i<
3; i++
)// 迴圈1
cout<<
*pt++
int i=
0; i<
3; i++
)// 迴圈2
cout<
pt;
// 測試之後,釋放掉指標
pt =
null
;}
執行上述**,發現「迴圈1」 和 「迴圈2」 的結果是相同的,都是11,12,13。我們也實現了題目的要求。那麼到此為止,有沒有對你有所幫助呢。 指標運算元組
基本概念 指標運算元組的兩種方式 1 p value 2 p value 指標陣列與陣列指標區別 指標陣列 乙個陣列,存放的全是指標 陣列指標 乙個指向陣列的指標 1.一維陣列與指標 int p a 是將a 首位址傳給p cout p 將a的收位址輸出 cout p 3 輸出a 3 源 includ...
優化資料結構運算元組 指標
開始操作 原始資料結構 define receive max 2048 typedef struct lbdatatype 計畫 1改為指標 2放棄巨集 先1 define receive max 2048 typedef struct lbdatatype 編譯發現 沒有問題 其實是有問題的 你看...
php運算元組
php陣列操作 test01 array a aaaa b bbbb c cccc while list key,value each test01 php陣列操作 array walk 對陣列中的每個成員應用使用者函式 array walk test01,walk test function wa...