C语言中不存在引用,所以当你试图改变一个指针的值的时候必须使用二级指针。
1.当不用指针时,参数传入子函数的过程为值传递,子函数中修改的局部变量的值对原来的实参并没有影响。
2.当用一级指针时,参数传入子函数的过程为地址传递,子函数的实际操作是对指针的操作,那就可以通过子函数中对于实参指针的修改达到修改实参的值的目的。
我们通过传递指针来达到修改一个值的目的。那么当你 需要修改一个指针的时候 呢,这个时候我们就需要指针的指针(二级指针):
3.当用二级指针时,是为了修改一个指针
int fun() {
    int *p;
    int m;
    m = init1(&p);
    return m;
}
int init1(int **a) {
    *a = malloc(50);
    return 1;
}
fun()函数通过调用init1()函数实现给p分配内存空间的目的。
p为一个指针,&p就是指向指针p的一个指针(二级指针),
通过把&p传递给init1()函数,此时二级指针a=&p,所以说a是指向指针p的一个指针。
那么对于*a的操作,实际上就是对于指针p的操作,达到了修改指针的目的,这样fun()就可以通过init1()函数来分配内存空间了。
  • 关于值传递

指针传递参数本质上是值传递的方式,它所传递的是一个地址值。值传递过程中,被调函数的形式参数作为被调函数的局部变量处理,即在栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。

C语言中二级指针的作用相关推荐

  1. c语言二级指针有什么作用,C语言中二级指针的实例详解

    C语言中二级指针的实例详解 C语言中二级指针的实例详解 用图说明 示例代码: #include int main(int argc, const char * argv[]) { // int a = ...

  2. C语言中的指针有什么作用

    C语言中的指针的作用是:通过指针不仅可以对数据本身,还可以对存储数据的变量地址进行操作.指针就是内存地址,指针变量是用来存放内存地址的变量. 指针定义: 指针,是C语言中的一个重要概念及其特点,也是掌 ...

  3. c语言中数组的概念及作用,详解C语言中的指针与数组的定义与使用

    指针的特点 他就是内存中的一个地址 指针本身运算 指针所指向的内容是可以操作的 操作系统是如何管理内存的 栈空间 4M~8m的大小 当进入函数的时候会进行压栈数据 堆空间 4g的大小 1g是操作系统 ...

  4. 【C 语言】二级指针案例 ( 字符串切割 | 返回 自定义二级指针 作为结果 | 每个 一级指针 指向不同大小内存 | 精准分配每个 一级指针 指向的内存大小 )

    文章目录 一.二级指针案例 ( 返回自定义二级指针 | 精准控制内存大小 ) 二.完整代码示例 一.二级指针案例 ( 返回自定义二级指针 | 精准控制内存大小 ) 博客 [C 语言]二级指针案例 ( ...

  5. 【C 语言】二级指针案例 ( 字符串切割 | 返回 自定义二级指针 作为结果 )

    文章目录 一.二级指针案例 ( 返回自定义二级指针 ) 二.完整代码示例 一.二级指针案例 ( 返回自定义二级指针 ) 上一篇博客 [C 语言]二级指针案例 ( 字符串切割 | 返回 二维数组 作为结 ...

  6. 【C 语言】二级指针作为输入 ( 自定义二级指针内存 | 二级指针排序 | 通过 交换指针指向的内存数据 方式进行排序 )

    文章目录 一.二维指针 排序 ( 通过 交换指针指向的内存数据 方式进行排序 ) 二.完整代码示例 一.二维指针 排序 ( 通过 交换指针指向的内存数据 方式进行排序 ) 在上一篇博客 [C 语言]二 ...

  7. 【C 语言】二级指针作为输入 ( 自定义二级指针内存 | 二级指针 排序 | 通过 交换指针方式 进行排序 )

    文章目录 一.二维指针 排序 ( 通过 交换指针方式 进行排序 ) 二.完整代码示例 一.二维指针 排序 ( 通过 交换指针方式 进行排序 ) 在上一篇博客 [C 语言]二级指针作为输入 ( 二维指针 ...

  8. 指针在c语言中的运用,怎么理解C语言中的指针,如何运用?

    恰好我之前写了一系列介绍 C 语言的文章,介绍了什么是指针,以及为什么要使用指针,下面摘录一部分,感兴趣的话,可以点我了解更多. 什么是 C语言指针? 不同的数据类型的主要区别在于占用的存储空间不同. ...

  9. C中二级指针与它指向的一级指针之间的秘密(深入++*pptr)

    C语言里二级指针的意思是指向指针的指针,一级指针就是普通的指针,一个二级指针一定是对应着一个一级指针,那么二级指针和这个它对应的一级指针之间有什么秘密呢? 1. 首先明白在二级指针使用中 ++*ppt ...

最新文章

  1. MTK前CFO喻铭铎分享经营智慧:山寨只是门票
  2. linux automake 卸载,linux下open-vswitch安装卸载操作
  3. 川大优秀毕业生在GitHub上建了一个项目《深度学习500问》,还未完结就获赞无数
  4. 02html和css
  5. css 图片换行_前端学习口诀VI:html+css口诀结尾篇,值得收藏!
  6. 【sklearn学习】随机森林分类、回归
  7. 计算机在管理会计应用中的作用,信息化在管理会计中的作用
  8. QQ连连看棋盘数组找法:
  9. 花书+吴恩达深度学习(一)前馈神经网络(多层感知机 MLP)
  10. ×××技术漫谈之IPSec(附MPLS)
  11. 使用Java打开外部程序
  12. Python 读取/保存 图片,发现有色差,可以怎么解决了?
  13. 河北省对口计算机打字试题,河北省对口升学计算机基础.ppt
  14. DS18B20 单总线多器件的ROM 搜索, ALARM 检测, CRC 校验 源码实现, 基于 STM32F103
  15. javascript运行机制
  16. 微信支付获取prepay_id以及回调地址
  17. 三大运营商发春,要向腾讯劫个色
  18. 基于人工智能算法的多元负荷预测
  19. 微信小程序开发常见问题FAQ之五
  20. 全国最先进的期货仓单系统|外盘期货仓单软件|内盘期货仓单软件

热门文章

  1. 解释一下为什么数据文件最好采用单字符作为字段分隔符
  2. Java学习系列(十六)Java面向对象之基于TCP协议的网络通信
  3. JQuery Dialog UI按钮文字国际化
  4. iText制作表格比较好的文章
  5. 洛谷P2568 GCD(莫比乌斯反演)
  6. 是时候该了解一波Protocol Buffers了[Java]
  7. 《Python自然语言处理》第二章 习题解答 练习6
  8. Eclipse·Maven·构建SpringMVC简单工程-3
  9. Windows 10 之修改登录背景(Win10BGChanger)
  10. dotnetNuke module development steps, dnn 模块开发步骤