• 在子函数中,利用一级指针和二级指针动态创建空间


    #include <stdio.h>    
    void changeAddress(int** value);    
    int main() {    
      int arr[] = {1, 2, 3};    
      int* p = arr;    
      // 改变之前 p 的地址    
      printf("%p
    ", p);    
      // q 用来保存改变之前 p 的地址    
      int* q = p;    
      changeAddress(&p);    
      // 改变之后 p 的地址    
      printf("%p
    ", p);    
      // 地址改变的差值    
      printf("%lu
    ", p - q);                                                                                                               
      return 0;    
    }    
    void changeAddress(int** value) {    
      *value += sizeof(int);    
    }    

    效果图

     没错, 如果说一级指针是用于对数据的更新, 那么二级指针就是用于对数据地址的更新. 以此类推, 三级指针就是对数据地址的地址的更新…

    原文链接是:https://blog.csdn.net/qq_42957923/article/details/86927786

    这里有个原创,然你感受一下关联的一个一级指针和二级指针。下图左边是代码,右边是一级指针和二级指针的值。

    int a; //a是一个int类型的变量,它的值是一个整数
    int *pa = &a; //pa 是一个int *类型的变量,它的值是一个int型变量的地址
    int **ppa = &pa; //ppa是一个int **型的变量,它的值是一个int *型变量的地址 

    通过打印出,一维指针和二维指针,我们可以看到这里面的所有的值的变化,通过二维指针可以修改这个二维指针指向的一维指针所指向的地址。这就是精华所在了。定义二维指针的时候,我们需要明确一点就是,这个定义的二维指针必须要指向一维指针。

  • 相关阅读:
    MathType中怎么设置字体默认颜色
    MathType二次偏导怎么表示
    简单几步让你的公式逼格爆表!
    登陆
    输入框
    表单
    窗体
    hello world
    net 代码生成
    Sql_server四种执行ExecuteReader、ExecuteNonQuery、ExecuteScalar、DataSet.docx
  • 原文地址:https://www.cnblogs.com/littleswan/p/12165627.html
Copyright © 2020-2023  润新知