首先函数有形参和实参之分,形参是在函数原型和函数定义中写的参数,实参是在实际调用函数时的参数
调用函数的过程:将实参压栈,在栈内存空间中重新创建以形参为编译地址的空间,值为实参传递,(这里就说明了为什么要在实参为大数据,尤其是结构体的时候,建议用指针传地址,因为指针大小固定是4个字节,这是因为指针即地址,现在地址总线是32根,32bit == 4Byte),所以说在调用函数结束时,因为出栈,这块内存空间被系统回收,原先压栈的实参没变化
当实参是指针时,传指针是传地址,而*p又是指向实参,导致修改*p可以修改实参指向的内存,所以当希望可以通过函数修改实参的时候,一般就是传递实参地址,所以c++专门多了一个“引用”的概念。
总结:希望修改传递给函数的值时,实参为其指针,修改指针的指针比如数组的时候也是如此
ps:其实最快的方法是看动画,其次看图,但画图麻烦我就不画了

转载于:https://www.cnblogs.com/rz-jin/archive/2012/12/13/2816373.html

指针在函数传参的使用相关推荐

  1. C语言 指针在函数传参中的使用

    int add(int a, int b)   //函数传参的时候使用了int整型数据,本身是数值类型.实际调用该函数时,实参将自己拷贝一份,并将拷贝传递给形参进行运算.实参自己实际是不参与运算的.所 ...

  2. 【C语言进阶】数组、指针、函数——传参篇

    目录 写在前面 一.数组传参 一维数组传参 二维数组传参 二.指针参数 一级指针传参 二级指针传参 三.函数传参 四.看懂代码 写在最后 写在前面 上篇文章介绍了指针数组和数组指针,有兴趣的小伙伴可以 ...

  3. linux-c之函数(函数指针、函数传参、命令行参数)

    一.函数的定义与声明.调用 #include <stdio.h>int add(int a,int b);//函数声明int main() {int a = 5;int b= 6;int ...

  4. java 传值为不可变_Java函数传参(String的不可变性)

    本篇博客无意讨论Java里面函数传参是否只有值传递还是值传递和引用传递同时存在,仅讨论函数传参的一些原理. 一. 什么是函数传参? 最常见的一个swap函数:下面这个swap函数并不能实现我们想要的交 ...

  5. 指针数组的初始化和遍历,并且通过for循环方式、函数传参方式进行指针数组的遍历...

    1 /************************************************************************* 2 > File Name: messa ...

  6. 指针进阶(指针与数组传参、数组指针与指针数组、函数指针数组、回调函数的辨析)

    指针 指针作为C语言中极具代表性的特征之一,也是C语言学习中的一大难点. 简单来说,指针我们需了解的最基础的即: 指针是一个用来存放地址的变量,地址唯一标识一块内存空间. 指针的大小是固定的4/8个字 ...

  7. 『Python × C++』函数传参机制学习以及对比

    一.Python函数传参 在python中,函数传参实际上传入的是变量的别名,由于python内在的变量机制(名称和变量值相互独立),只要传入的变量不可变(tuple中的元素也要是不可变的才行),那么 ...

  8. linux文件编程(3)—— main函数传参、myCp(配置成环境变量)、修改配置文件、整数和结构体数组写到文件

    参考:linux文件编程(3)-- 文件编程的简单应用:myCp.修改配置文件 作者:丶PURSUING 发布时间: 2021-04-09 23:45:05 网址:https://blog.csdn. ...

  9. 从getmemery()函数看内存管理、函数传参等一系列问题

    在C 面试题目中,会经常出现getmemery()函数的改错题,比如下面这道题, 例一:代码如下: [cpp] view plaincopy #include <stdio.h> char ...

最新文章

  1. oracle 生成目录树,jQuery zTree插件快速实现目录树
  2. wxWidgets:剪贴板 wxWidgets 示例
  3. php 实现贪吃蛇游戏,C++实现简单贪吃蛇游戏
  4. mvc源码解读(10)-ParameterDescriptor方法Action方法的参数描述对象
  5. python定义fmax_Python标准库:内置函数max(iterable, *[, key, default])说明
  6. mysql 表 组织 管理_MySQL 基础知识梳理学习(二)----记录在页面层级的组织管理...
  7. 极速安装JumpServer - 官方文档版
  8. [Linux] 解决virtualbox共享文件夹没有访问权限的问题
  9. 跑毒的乌龟-0 : 随机漫步
  10. 使用LOIC 对新搭建的网站迚行DDOS攻击
  11. Redis的配置文件详解
  12. python计算峰度和偏度、相关系数
  13. 计算机网络-应用层笔记
  14. Python 学习:函数
  15. 收录 几篇 关于 广义相对论 水星进动 的 文章
  16. android高仿美团筛选控件,Android高仿美团首页分类按钮
  17. 雅可比行列式_二重积分换元法、雅可比行列式
  18. 春季儿童吃什么有助于长高,3款适合孩子长高的食谱做法,学起来
  19. 华为p9 html尺寸,华为P9的屏幕尺寸是多少?
  20. 什么是银行卡实名认证接口?

热门文章

  1. css电子商务管理_从毕业生的角度看电子商务专业
  2. css3 高度最小100%,100%最小高度CSS布局
  3. cmd运行java文件_Java基础 前传
  4. Image Watch的使用示例
  5. linux aptana,Ubuntu 下Aptana Studio 3安装使用
  6. webpack 采坑(CleanWebpackPlugin 插件报错: CleanWebpackPlugin is not a constructor ;)
  7. 毕业设计从入门到放弃
  8. Investigating SQL Server 2008 Wait Events with XEVENTS
  9. python 面向对象:类,作用域
  10. with(nolock)的用法