我注意到在 golang 中我們可以使用指向陣列的指標,如下所示:
arr := [3]int{1, 2, 3}
var ptr *[3]int = &arr
要獲取存盤在索引 n 處的值,我們可以做(*ptr)[n],但是為什么ptr[n]還要獲取我的值,難道它不應該輸出一些隨機地址嗎?
語境
在 C 中,這是觀察到的行為
int (*ptr)[5];
int arr[] = {1,2,3,4,5};
ptr = &arr;
cout <<"ptr[1] = " << ptr[1] <<endl; //Outputs an address (base address of array 20bytes)
cout << "(*ptr)[1] = " << (*ptr)[1]<< endl; //Outputs 2
uj5u.com熱心網友回復:
對于指向陣列型別
a的指標:
a[x]是簡寫(*a)[x]
請參閱語言規范:索引運算式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/321546.html
