C语言 int** 二重指针的理解

#include <stdio.h>    
#include <stdlib.h>

 /*&根据值找地址
     *根据地址找值              
    */  
f(int** q){//传入的是指针的地址 
    int i = 3; 
    printf("子函数 i的地址 %#X\n",&i); 
    // *q   代表的就是p变量  
    *q = &i; //*q指向是p的值  也就是把p地址(比如&p=220005)所指向的值(也即是p)赋成了i的地址/ 
} 
/**
   使用指针的时候 不可以访问已经被系统回收掉的数据  
   子函数执行完毕后 子函数里面所有的局部变量都会别系统回收  
*/

 main() 
{   
        
        
        // 希望在主函数里面去使用子函数里面的变量 i 
        
        // f(); 
        
        // 希望在主函数里面得到子函数 里面int i变量的地址 
        
        int* p ; //存放子函数f中 int i的地址的一个变量
        
         
        f(&p); //把p(比如&p=220005)的地址传入了f 
         
       // printf("主函数 i的地址 %#X\n",p); 
        
       // printf("i的值为 %d\n",*p); 
        
       system("pause");    // 调用windows下系统的命令 让程序暂停执行  方便观察程序的执行结果  
          
          
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值