void f(int *&) { };

fzhfeng 2002-03-16 03:11:29
改变指针本身而不改变指针指向的内容可以吗?
比如:
void f(int *&) {i++;}
int i=4;
int* p=&i;
f(i);
...全文
61 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tommy 2002-08-22
  • 打赏
  • 举报
回复
x97(旱鸭子)
变的只是p的值,i的值不会变的
x97 2002-08-21
  • 打赏
  • 举报
回复
void f(int *&i) {i++;} //指针的引用。

int i=4;
int* p=&i;
f(p);//传的是一个整形指针。

函数运行后 i的值是会变的!
fangrk 2002-03-21
  • 打赏
  • 举报
回复
int i;
int*&p=&i;//p是&i的引用

#include <iostream.h>
void f(int *&);
main()
{ int i=10;
int *p=&i;
f(p);
cout<<i<<endl;//i==11
return 0;
}
void f(int *&t)
{ (*t)++;
}
fzhfeng 2002-03-21
  • 打赏
  • 举报
回复
thanks to everyone
fzhfeng 2002-03-21
  • 打赏
  • 举报
回复
thinking in c++
zhaig 2002-03-16
  • 打赏
  • 举报
回复
我觉得不可以,指针值改变,它的指向也改变了。
prototype 2002-03-16
  • 打赏
  • 举报
回复
to luoxiao_std01:

it is alright for pointer to be changed like that. it will be obviouse if i change the code a little bit to:

int i[5];
int* p = i; // p points to &i[0]
f( p ); // p points to &i[1]

the usage of f() function will make sense.
purplelover 2002-03-16
  • 打赏
  • 举报
回复
这有什么用??
luoxiao_std01 2002-03-16
  • 打赏
  • 举报
回复
不要误人子弟好不好!!!!
指针是可以这样改变的吗!!!!!
void f(int *&i)(i++);???????
你要干什么?
*&i不就是 i 吗?


prototype 2002-03-16
  • 打赏
  • 举报
回复
should be:

void f(int*& i) { i++; }
int i =4;
int* p = &i;
f( p );

p is changed (p = p + 1), while i doesn't change.
mengzq 2002-03-16
  • 打赏
  • 举报
回复
void f(int *& i) {i++;}
int i=4;
int* p=&i;
f(p);


这样就ok!


fzhfeng 2002-03-16
  • 打赏
  • 举报
回复
忘了
void f(int *&i) {i++;}
rico80 2002-03-16
  • 打赏
  • 举报
回复
f的定义为什么没有形参呢?
我不明白你是什么意思。

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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