大家都在看
带指针的函数怎么调用?
最佳答案
什么叫带指针的函数?说清楚点嘛?
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: "< 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); //传递地址
声明:知趣百科所有作品均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请在页面底部查找“联系我们”的链接,并通过该渠道与我们取得联系以便进一步处理。