第四章 指標 Pointer(進階),第四章指標pointer
第四章
指標 pointer(進階)
希望初學者在入門的時候,可以看一些英文的原著,我感覺英文書籍是原意,而一些現在中文的翻譯是加上了譯者的一些理解,多少是拿來的東西,所以一些東西我希望能夠按照自己的來。
&A 就是取存放A的位置,我們可以將這個位置複製給pointer variable。
*A 從A所指的位置中“提取數值”
接上回,首先取個例子:
Algorithm findBigger(x, y)
Pre: x, y :: refToInteger are valid references
Post: no change to data
Return: the reference to the larger of *x, *y
refToInteger temp
if (*x ≥ *y)
temp ← x
else
temp ← y
end if
return temp
值得注意的是,在這裡的x和y是指兩個address,我們可以從這兩串數字中讀取到它所指的數值。當給一個pointer temp賦值時,我們輸入這個pointer的值就是x的address。
在C++的執行個體中就是如此:
int *findBigger(int *x, int *y){
int *temp;
if (*x >= *y)
temp = x;
else
temp = y;
return temp;
}
這時候,temp所存放的就是地址。
Algorithm swap(a, b)
Pre: a :: refToInteger
b :: refToInteger
a, b contain valid references
Post: the contents of *a and *b
are exchanged
Integer temp ← *a
*a ← *b
*b ← temp
下回,我將會講記憶體和指標的運用