指针的引用?

wklucky 2005-11-07 04:11:52
指针的引用?这种用法一般用在什么情况下?具体是什么意思?
希望各位高手回答一下,最好代有例子,谢谢...
...全文
215 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
csjcrystal 2005-11-08
  • 打赏
  • 举报
回复
但"指向整形的常量指针的引用"又有何用处呢?既然不需要改变指针的值
比如论坛上一个帖子写的

bool detemin (int * const &a, const long &sa, int * const &b, const long &sb)
加不加引用有何作用?
=====================================
指针不能变,指向的内容可变
zl0126 2005-11-07
  • 打赏
  • 举报
回复
mark
jiangabc 2005-11-07
  • 打赏
  • 举报
回复
哦不对,是 &a 是整形指针。
a 是一个整形指针的引用。
a 可以改变,a 的被引用变量不可改变。
jiangabc 2005-11-07
  • 打赏
  • 举报
回复
是不是这样:
const 修饰 &a ,a 的被引用变量不可改变,a 可以改变.
int * 修饰 &a , 表示 a 是一个整型指针.
寻开心 2005-11-07
  • 打赏
  • 举报
回复
1 没有&就要加个*才能达到目的
也就是说,& 和 * 可以简单的理解为等价的, 那么有无它,类型是不一样的
2 用const表示,虽然使用的是引用,但是数值并不允许改变,防止程序当中对他进行修改
wklucky 2005-11-07
  • 打赏
  • 举报
回复
但"指向整形的常量指针的引用"又有何用处呢?既然不需要改变指针的值
比如论坛上一个帖子写的
bool detemin (int * const &a, const long &sa, int * const &b, const long &sb)
加不加引用有何作用?
寻开心 2005-11-07
  • 打赏
  • 举报
回复
void InitStack(LNode* & HS)
{
HS = NULL; // 函数返回后, HS就是NULL了
}

void InitStack(LNode* HS)
{
HS = NULL; // 函数返回后, HS依然是传递进来的数值
}
寻开心 2005-11-07
  • 打赏
  • 举报
回复
当然不一样了
指针的引用,相当于传递的是: 指针的指针, 这样指针的数值是可以改变的
而单传递指针,不传递指针的引用,那么指针指向的数据是可以改变,而指针本身是不可以改变的

引用和非引用的差异,最直观的区别就是传递的数值本身是否可以被改变
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赋值的话
jiangabc 2005-11-07
  • 打赏
  • 举报
回复
我也不懂,顶!
看到课本上有一个例子,初始化栈:
void InitStack(LNode* & HS)
{
HS = NULL;
}
感觉多余
请教了```

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧