【发布时间】:2012-12-20 15:40:21
【问题描述】:
我正在尝试使用指针(特别是 void 指针)按引用编写交换函数,但我的代码无法正常工作。这是我的代码:
void swap(void *p1,void *p2)
{
int temp;
temp=*((int*)p2);
p2=p1;
p1=&temp;
}
int main()
{
int i=4;
int j=5;
cout<<i<<j<<endl;
swap(&i,&j);
cout<<i<<j<<endl;
return 0;
}
我哪里错了?
【问题讨论】:
-
这在很多方面都被破坏了,但最重要的问题 (IMO) 是为
p1,p2分配值,而您实际上需要分配它们的地址。这不是唯一的问题,只是最重要的 IMO。 -
是否需要通过引用传递指针?
-
因为你在交换整数,你不需要将函数参数作为空值传递。
标签: c++ void-pointers