• 指针的指针


    1 int val1,val2,val3;
    2 
    3 int *p1 = &Val1;
    4 
    5 int *p2 = &val2;
    6 
    7 int *p3 = &val3;

    使用指针的指针:

    1 int **pp1 = &p1;
    2 
    3 int **pp2 = &p2;
    4 
    5 Int **pp3 = &p3;

    对于int **pp1 = &p1; 我们可以理解成取得p1的地址赋值给指针pp1,*pp1就是p1,**pp1就是val1。用下面的图来表示就是:

    现在改写 *pp1 = p2 ,就是将p2存放的地址赋值给了p1,现在p1指向的地址为val2的值,所以现在int num= *p1,num就等于6。 

    指针存放的是对象在内存中的地址。

    &是取地址,意思是返回当前对象在内存的中的地址

    *是取值,意思是返回一个指针所指向的对象,如果当前指针保存的是一个内存地址,那么*就返回这个内存地址所对应的对象

    所以当*pp1 = p2,就是返回pp1所指向的对象p1,然后将p2指向的地址赋值给p1,那么p1这个指针所指向的对象就变成了val2。

    &:取地址

    *:取值

  • 相关阅读:
    Cg学习
    Unity URP
    unity官方案例水效果解析
    Unity使用Xlua框架热更
    隐私政策以及用户协议
    iOS App 从点击到启动
    iOS编程中throttle那些事
    Homebrew安装
    ios 开发证书 appids 描述文件关系
    学习网站
  • 原文地址:https://www.cnblogs.com/leoncumt/p/10473750.html
Copyright © 2020-2023  润新知