指针的引用?
指针的引用?这种用法一般用在什么情况下?具体是什么意思?
希望各位高手回答一下,最好代有例子,谢谢...
问题点数:20、回复次数:9Top
1 楼jiangabc(看贴不回)回复于 2005-11-07 16:21:15 得分 3
我也不懂,顶!
看到课本上有一个例子,初始化栈:
void InitStack(LNode* & HS)
{
HS = NULL;
}
感觉多余
请教了```Top
2 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2005-11-07 16:36:05 得分 3
当然不一样了
指针的引用,相当于传递的是: 指针的指针, 这样指针的数值是可以改变的
而单传递指针,不传递指针的引用,那么指针指向的数据是可以改变,而指针本身是不可以改变的
引用和非引用的差异,最直观的区别就是传递的数值本身是否可以被改变
fun ( int a)
{
a = 3; //
}
fun1 ( int& a)
{
a = 4; //
}
...
main()
{
....
int a = 8;
fun(a); // 在 fun函数内部,a是等于3,但是当函数返回后,a依然是8,并没有变化
fun1(a); // 这里,在fun1函数内部,a等于4, 函数返回后,a也是4
}
指针类型也一样
fun(int * pA); // pA的数值在函数返回后不会变化
fun(int*& pA); // pA的数值在函数返回可能会发生变化,如果fun函数内部对pA赋值的话
Top
3 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2005-11-07 16:36:56 得分 3
void InitStack(LNode* & HS)
{
HS = NULL; // 函数返回后, HS就是NULL了
}
void InitStack(LNode* HS)
{
HS = NULL; // 函数返回后, HS依然是传递进来的数值
}Top
4 楼wklucky(一辈子的孤单)回复于 2005-11-07 17:02:11 得分 3
但"指向整形的常量指针的引用"又有何用处呢?既然不需要改变指针的值
比如论坛上一个帖子写的
bool detemin (int * const &a, const long &sa, int * const &b, const long &sb)
加不加引用有何作用?Top
5 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2005-11-07 17:29:02 得分 0
1 没有&就要加个*才能达到目的
也就是说,& 和 * 可以简单的理解为等价的, 那么有无它,类型是不一样的
2 用const表示,虽然使用的是引用,但是数值并不允许改变,防止程序当中对他进行修改Top
6 楼jiangabc(看贴不回)回复于 2005-11-07 18:20:24 得分 3
是不是这样:
const 修饰 &a ,a 的被引用变量不可改变,a 可以改变.
int * 修饰 &a , 表示 a 是一个整型指针.Top
7 楼jiangabc(看贴不回)回复于 2005-11-07 18:25:06 得分 3
哦不对,是 &a 是整形指针。
a 是一个整形指针的引用。
a 可以改变,a 的被引用变量不可改变。Top
8 楼zl0126()回复于 2005-11-07 19:18:53 得分 0
markTop
9 楼csjcrystal(水晶)回复于 2005-11-08 00:24:36 得分 2
但"指向整形的常量指针的引用"又有何用处呢?既然不需要改变指针的值
比如论坛上一个帖子写的
bool detemin (int * const &a, const long &sa, int * const &b, const long &sb)
加不加引用有何作用?
=====================================
指针不能变,指向的内容可变Top




