带指针的函数怎么调用

带指针的函数怎么调用... 带指针的函数怎么调用 展开
 我来答
君哥哥爱漂移
推荐于2018-08-11 · TA获得超过334个赞
知道小有建树答主
回答量:99
采纳率:33%
帮助的人:57.9万
展开全部
什么叫带指针的函数?说清楚点嘛?
1.如果是返回值是指针
char* getname()
{
char* pname=new char[23]; //返回指针必须是函数释放后并未释放的内存空间,
cout<<"input your name:\n"; //一般返回两种情况,一是在函数中像该函数一样动态分配堆内存
cin.getline(pname,22); //二是返回指针指向参数中地址,如: int* max(int a,int b) { return &a; }
pname[22]='\0';
return pname;
}
int main()
{
char* name=getname();
cout<<"your name is: "<<name<<endl;
delete []name; //记得动态释放分配内存
return 0;
}
2.参数是指针类型
常见的是通过指针或引用交换两个数的值
void swa(int* p1,int* p2)
{
int temp=*p1; *p1=*p2; *p2=temp;
}
int main()
{
int a=2,b=3;
swa(&a,&b); //传递地址
return 0;
}
附解:你可以把指针看做是一种复合类型,它之所以可以修改参数值,本质是因为
对指针解除引用*p形式是操作的参数所存数据内存空间,但如果它不解除引用,它
并不会修改参数的值:如
void swa(int* p1,int* p2) //函数意思是最初始在函数参数块中定义两个指针p1,p2,使
{ //p1指向a,p2指向b,下面函数体只是使指针指向地址改变,成了
//p1指向b,p2指向a。但并未对a,b内存空间操作,当函数调用结束后,指针p1,p2
//也释放了,所以并未起任何作用
int* temp;
temp=p1; p1=p2; p2=temp;
}
int main()
{
int a=2,b=3;
swa(&a,&b); //传递地址
cout<<a<<" "<<b;
return 0;
}
这个函数并不会交换a,b的值
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
h6u859hx72
2011-02-28 · TA获得超过2844个赞
知道小有建树答主
回答量:775
采纳率:0%
帮助的人:556万
展开全部
返回的是个指针,也就是个地址,如果你要引用的是这个地址,没有问题的。如果你想通过这个地址去引用它所指向的变量,那就不一定了,因为那个变量不一定还存在。

就好比你某次去某个地方玩,发现一家小饭店很好,你记下它的门牌号带回来了。在你回家后,你还可以看这个你自己记下的门牌号,看一千遍一万遍都行,十年时候再看这个你自己记下的门牌号也行,但你下次按照这个门牌号去找这个小饭店,也许它已经不存在了,甚至变成了一个洗头房。

参考资料: 百度一下

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式