![](https://csdnimg.cn/release/download_crawler_static/2392586/bg1.jpg)
c++之指针作为函数参数传递的问题
原创文章,转载请注明出处,谢谢!
作者:清林,博客名:飞空静渡
博客地址:http://blog.csdn.net/fjb2080
其实,对于 C 或者 C++,最难的一块地方估计就是指针了。指针是强大的,但也是很多人载在这里的
地方。
前段时间写了一篇文章《C ++之 数组与指针的异同 》对 C 和 C++中的指针做了一个初步的讲解。这
次将讲解一下指针作为函数参数传递的问题。
很多人对于指针的使用是有所了解的,但还是经常会载在指针的问题上,是因为还不够了解指针的本质,
其实如果了解指针的本质,对指针的使用也就一目了然了。
作为 C 的初学者,经常会遇到指针作为函数参数传递的两个经典的问题。这里,我将透过指针的本质来
来讲解这两个问题,这样以后无论你遇到什么样的指针问题,如果你以这样的方法来分析指针也许就迎
刃而解了!
首先,第一个问题是这样的:
写一个函数,交换两个参数中的值。
初学者往往会这样写:
void exchange(int x, int y)
{
int p=x;
x = y;
y = p;
}
之后,你会查找资料了解到应该这样写:
void exchange(int *x, int *y)
{
int *p=x;
*x = *y;
*y = *p;
}
第二个问题是,写一个给某个指针分配内存的函数:
初学者往往是这样写:
void my_malloc(void* p, int size)
{
p = malloc(sizeof(int)*size);
}
然后又查在资料,知道应该这么写:
void my_malloc(void** p, int size)