博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为什么有指向指针的指针?
阅读量:2526 次
发布时间:2019-05-11

本文共 835 字,大约阅读时间需要 2 分钟。

采用指向指针的指针操作,一般用于在函数内部来改变采用指针方式传进函数的主函数的指什的指向   

    
  我们想在函数pro()中改变指针p的值(记住:是指针p的值,而不是p所指向的地址的值)。能实现吗?结果是不能,为什么?我们来分析一下  
   
  先看一个例子:  
             
            #include   <stdio.h>  
            char   buf[10]   =   "hello";  
   
            void   pro(char   *out)  
            {  
                    out   =   buf;  
            }  
   
            main()  
            {  
                    char   *p   =   NULL;  
                     
                    pro(p);  
                    printf("%s/n",   p);  
            }  
   
            我们想在函数pro()中改变指针p的值(记住:是指针p的值,而不是p所指向的地址的值)。能实现吗?  
            结果是不能,为什么?我们来分析一下。   
    
                        
            这个例子是改变了字符串指针p所指向的字符串的指,它能记住这个改变是因为在函数中是对指针所指向的地址  
            空间进行操作。你明白了吗?也就是说,函数的参数是char   *out,我们可以改变   *out,但改变不了out本身。  
            所以针对第一个例子,我们要想改变p,必须把&p当作参数传给函数pro()。修改后的例子如下:  
   
     
            #include   <stdio.h>  
            char   buf[10]   =   "hello";  
   
            void   pro(char   **out)  
            {  
                    *out   =   buf;  
            }  
   
            main()  
            {  
                    char   *p   =   NULL;  
                     
                    pro(&p);  
                    printf("%s/n",   p);  
            }   
 

补充:

int a = 3, *p;

*p = a ;//error
这个是错误的,原因就是:
p是一个为初始化的一个 随机指针,对一个没有初始化的指针进行*运算,这个是取值运算,这个都是错误的,根本就不能对这样的指针做任何操作,严重的有可能p指向了操作系统的一快内存,对他进行操作,系统都有可能 挂掉的
一般的,这样用
int a= 3,*p;
p=&a; //a是已经分配了内存的一个int变量,对它进行取地址&运算,在给指针p进行初始化,

转载地址:http://qdyzd.baihongyu.com/

你可能感兴趣的文章
别人抢红包,我们研究一下红包算法
查看>>
泛型的一些问题
查看>>
PHP与正则表达式 2 :一些修饰符与preg_match_all
查看>>
压八位高精度 高精操作大全
查看>>
进程、线程、协程和GIL(二)
查看>>
dockerfile语法规则
查看>>
模块的导入
查看>>
《Inside C#》笔记(八) 接口
查看>>
kafka介绍
查看>>
java类加载机制及方法调用
查看>>
《大话西游》:我的意中人是一个盖世英雄
查看>>
iOS 清除xcode缓存和生成文件
查看>>
为什么幻灯片画布不居中
查看>>
flask模板应用-javaScript和CSS中jinja2 --
查看>>
react-native 调用原生方法
查看>>
查看Mac系统所有USB设备信息 解决android studio无法识别真机问题
查看>>
20145238 《信息安全系统设计基础》第2周学习总结
查看>>
android 获取日期
查看>>
HDU-1018 BigNumber(斯特林近似)
查看>>
Excel公式——单元格前加固定字符串
查看>>