值传递
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
cout<<"a=" <<a<<" ,"<<"b="<<b<<endl;
cout<<"*a=" <<*a<<" ,"<<"*b="<<*b<<endl;
cout<<"&a=" <<&a<<" ,"<<"&b="<<&b<<endl;
}
//调用
int x=1;
int y=2;
swap(&x,&y);
指针
//传进来的时候,p和a不同地址,指向同一个地方
//malloc操作后,p指向另外一个地方,a不变
void my_malloc(void* p, int size)
{
*p = malloc(sizeof(int)*size);
}
int main()
{
int *a;
my_malloc(a , 10); //失败
return 1;
}
//传进来的时候,p和a指向同一个地方
void my_malloc(void** p, int size)
{
*p = malloc(sizeof(int)*size);
}
int main()
{
int *a;
my_malloc(&a , 10); //成功
return 1;
}
https://blog.csdn.net/richerg85/article/details/14450183 参考