第四章 指针 Pointer(高级)

来源:互联网 发布:数据可视化属于那块 编辑:程序博客网 时间:2024/06/16 10:06

第四章

 指针 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


下回,我将会讲内存和指针的运用

1 0