传值的一点认识

今天又把C++课本翻了一遍,发现了好多以前没彻底弄清楚的问题,比如说传值。
说起传值,最先想到的恐怕是赋值,他是最基本的传值方式,不过有时候我们希望用另外的方式来传值。传值一共有三种方式,第一种是赋值,第二种是指针(传地址),第三种是引用。
三种方式的区别:
             赋值是最简单的,打个比方说,它实质上是把 你copy出另一个你放到栈里(可以理解成客栈,呵呵,虽然不太恰当),然后对copy的那个你进行操作,比如这种操作是打残,那么copy的那个你就残了,如果有return返回,返回的是那个copy的你,第二天报纸说XXX被打残了,实际上原来的你老老实实在家呆着,没有变化,但是那个copy的你代替了真实的你,别人看到报纸后,就会以为你真的残了(实际上你好好着呢,残的是copy的那个你),这就是赋值的特点,传值时不改变内容。
             传地址相对难理解一点,你就当指针是GPS吧,如果我想找你,就通过GPS定位你的地址,然后通过去内容把你从地址中揪出来,对地址中的你操作和对你直接操作是一样的,我想轰炸你,可以直接对你轰炸,也可以轰炸你的地址,最后结果都是轰炸到你。指针还有个灵活性,我不想轰炸你了,想轰炸你的邻居,那么把指针挪一下就行了。指针传值是对地址中内容进行操作,会改变原有的值。
                最后一个是引用传值,我们语文上讲的引用,是把别人的话拿过来变成自己的,传值也和这差不多,比如说你叫张三,然后我们给你取外号叫三三,那么对三三的操作等同于对张三的操作,我们叫三三,那么张三就会答应,引用也就相当于取个新名字,当然,引用会改变原有的值。



注:指针很强大,如果比作一把刀,那么这把刀可以杀猪 ,可以砍柴,可以切菜.....不过也很危险,它还可以杀人,使用时要细心。?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/382134.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

递归经典例子

程序调用自身的编程技巧称为递归( recursion)。 一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出…

golang中的栈(LeetCode刷题)

栈的模拟(LeetCode刷题用法) func main() {stack : make([]string, 0)stack append(stack, "1" )stack append(stack, "2" )stack append(stack, "3" )fmt.Println(stack)stack stack[:len(stack)-1]fmt.Println(sta…

739. 每日温度 golang (list实现)

739. 每日温度 根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures [73, 74, 75, 71, 69, 72, …

openjudge基础题3计算书费

总时间限制: 1000ms内存限制: 65536kB描述下面是一个图书的单价表:计算概论 28.9 元/本数据结构与算法 32.7 元/本数字逻辑 45.6元/本C程序设计教程 78 元/本人工智能 35 元/本计算机体系结构 86.2 元/本编译原理 27.8元/本操作系统 43 元/本计算机网络 56 元/本JAV…

739. 每日温度 golang

739. 每日温度 根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures [73, 74, 75, 71, 69, 72, …

查找和排序的一点浅显认识

以前老是混淆各种排序的方法,对此我也感到十分苦恼,去网上搜索各种排序教程,结果收获颇微,就在期末考试时,我还担心会有排序的题(事实证明我多虑了),不过作为算法的基本功&#xff0…

581. 最短无序连续子数组 golang

581. 最短无序连续子数组 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 你找到的子数组应是最短的,请输出它的长度。 示例 1: 输入: [2, 6, 4, 8, 10, 9, 15] …

引用 看图英语作文万能模板

来源:新东方 2007-7-27 纵观历年的考研作文题,均为图画作文,鲜有图表作文,而现在考研作文的要求采用八股文的模式——命题者已经告诉你要去写什么、怎么写甚至于顺序都已经安排 好!那么针对这么一个固化的考试模…

41. 缺失的第一个正数 golang

41. 缺失的第一个正数 给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [7,8,9,11,12] 输出: 1 Code 双百解法!这个题据说今日头条出过&#xff0…

Android手机隐藏命令大全

Android手机隐藏命令大全,用之前要考 虑清楚尤其是涉及到格式化或者恢复出厂设 置类的!注意:因Android版本较多,固有部分隐 藏命令或不能使用(笔者用HTC legend测试 发现部分命令可用,比如*#*#4636#*#*&…

56. 合并区间 golang

56. 合并区间 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 示例 2: 输入: [[1,4],[4,5]] 输出: [[1,5]] 解释: 区间 [1,4] 和 …

忘记手势密码的解决办法

1.在输入密码的界面下方有个紧急呼叫按钮,点击进入紧急呼叫界面;2.输入*#*#7378423#*#*进入工程模式;3.依次选择customizationsettings--restcustomization--Resetcustomization and reboot,4.完成,自动重启!呼呼&…

15. 三数之和 golang

15. 三数之和 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a b c 0 ?请你找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例&#xff…

云盘搜索找资料

自己平时经常看英剧美剧和电影,为 了寻找资源方便,陆续整理收集汇总 的各类搜索方法(网站),现在分享 出来,感兴趣的可以看看~只要被上传到→百度云盘、360盘、 新浪微盘、115盘、华为盘、迅雷、 金山快盘等…

设计师必备的html工具

HTML 5已经成为Web开发者当中最流行的语言之一,“健壮的”语言有很大的生产优质万维网内容的能力。HTML 5在近三年的增长迅猛,新引入HTML 5的技术更加的优秀。HTML 5技术被现代浏览器所支持,如Chrome、Firefox、Internet Explorer等等。而今天…

42. 接雨水 golang

42. 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表…

257. 二叉树的所有路径 golang

257. 二叉树的所有路径 给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 输入: 1/ \ 2 3\5输出: [“1->2->5”, “1->3”] 解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3 Code…

dp题目分类

动态规划一般可分为线性动规,区域动规,树形动规,背包动规四类。举例:线性动规:拦截导弹,合唱队形,挖地雷,建学校,剑客决斗等;区域动规:石子合并&a…

349. 两个数组的交集 golang

349. 两个数组的交集 给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入: nums1 [1,2,2,1], nums2 [2,2] 输出: [2] 示例 2: 输入: nums1 [4,9,5], nums2 [9,4,9,8,4] 输出: [9,4] 说明: 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结…

poj 1018 Communication System

首先做这个题是极其难受的,第一次去做dp的题,万事开头难,虽然以前也接触过dp,但是都极力躲避着用其他算法解决,现在专门练这部分,倒觉得,你拍什么,什么就会比想象中难很多&#xff0…