[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)
{
    *p = malloc(sizeof(int)*size);
}

指针和变量一样,也是有地址的,变量的值真是一个值 ,指针的值被解释位一个地址。那指针存到哪里了呢  。。。。

指针也是一个变量,和普通的变量一样,都存在内存中。

指针也是有地址的。

当给一个函数的参数传递一个变量是,这个变量是复制过去的。

猜你喜欢

转载自www.cnblogs.com/road-of-mike/p/9638977.html