zoukankan      html  css  js  c++  java
  • [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);
    }

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

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

    指针也是有地址的。

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

  • 相关阅读:
    代理模式
    装饰模式
    策略模式
    简单工厂模式
    linux下进程相关操作
    散列表(哈希表)
    转载:最小生成树-Prim算法和Kruskal算法
    二叉排序树和平衡二叉树
    堆排序
    快速排序
  • 原文地址:https://www.cnblogs.com/road-of-mike/p/9638977.html
Copyright © 2011-2022 走看看