C++中数组作为形参的方法
原链接:https://www.cnblogs.com/abella/p/10607061.html
有两种传递方法,一种是function(int a[]); 另一种是function(int *a)
这两种两种方法在函数中对数组参数的修改都会影响到实参本身的值!
对于第一种,根据之前所学,形参是实参的一份拷贝,是局部变量。但是数组是个例外,因为数组的数据太多了,将其一一赋值既麻烦又浪费空间,所以数组作为参数传递给函数的只是数组首元素的地址,数据还是在内存里的,函数在需要用到后面元素时再按照这个地址和数组下标去内存查找。也就是说后面的元素根本没到函数里来。所以,这里也不能在test()函数内部用sizeof求数组的大小,必须在外面算好了再传进来。
对于第二种,则是传址调用,无需再说。
这里还有几点需要注意:
1.在以上两个函数的形参前面加上const则表示整个数组只读,而不是只有首地址对应存储的数据只读。
2.第二种形式不能用C++11中的for...auto来循环打印。
3.数组的大小要用sizeof()来求,不能用.size(),因为.size()只有struct 或者union才能用, vector算是struct!
4.如果在函数内部又声明一个int* tmp类型的变量,然后把p赋值给tmp, 通过tmp修改数数组也是一样,都会修改实参本身!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
|
C++中数组作为形参的方法相关推荐
- java 数组 length 减少_java中数组有没有length()方法?string没有lenght()方法?
java中数组有没有length()方法,求数组的长度可以使用数组的length属性. int length=arr.length;//求数组的长度 ------------------------- ...
- java中字符串和数组如何比较_[Java教程]javascript中数组和字符串的方法比较
[Java教程]javascript中数组和字符串的方法比较 0 2016-07-19 23:00:05 ×目录[1]可索引 [2]转换 [3]拼接[4]创建[5]位置 前面的话 字符串和数组有很多的 ...
- 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)
方法一:使用Arrays.asList()方法 1 2 String[] asset = {"equity", "stocks", "gold&quo ...
- java中数组的length_java中数组有没有length()方法?string没有lenght()方法?
展开全部 java中数组是没有length()方法的,只有length属性,数组array.length返回62616964757a686964616fe4b893e5b19e313333663064 ...
- Javascript中数组去重的六种方法
数组去重 第一种方法: 先对数组进行排序sort(),排好序,然后把数组的当前项和后一项进行比较,相同则使用数组的splice(相同的位置,1),但是为了防止数组塌陷,每次删除数组元素的时候要把i的值 ...
- javascript中数组的22种方法
前面的话数组总共有22种方法,本文将其分为对象继承方法.数组转换方法.栈和队列方法.数组排序方法.数组拼接方法.创建子数组方法.数组删改方法.数组位置方法.数组归并方法和数组迭代方法共10类来进行详细 ...
- java 定义整数数组_JAVA中数组的正确定义方法是什么?
数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来唯一地确定数组中的元素. §5.1一维数组 一.一维数组的定义 type arrayName[]; 其中类型(type)可以为Java中任 ...
- JS中数组和字符串的方法大全
一.ECMScript 3的Array.prototype中定义的方法 1.join() 定义:将数组中所有的元素都转化为字符串拼接在一起,返回最后生成的字符串. 注意:不改变原数组 var a = ...
- c语言中数组作为形参
数组可以做为函数形参传入进行处理,此时的数组变量退化为数组首元素的地址.其他读写操作可以类推,但是长度不能导入. int test(int array [],int len) {int sum = 0 ...
最新文章
- mysql gbk支持_让MYSQL支持GBK
- python常用内置函数总结-python 几个常用的内置函数
- The Digits String
- [android] 解决DatePickerDialog和TimePickerDialog控件取消按钮问题
- extjs的上传组件和HTML编辑器组件
- python2 pip安装包等出现各种编码错误UnicodeDecodeError: 'ascii'(/或者utf-8) codec can't decode byte 0xd2......
- Chrome浏览器无法观看视频,一直提示“adobe flash player 已过期” ?
- java scala_经过几天的Scala回归Java的10个最烦人的事情
- js执行环境作用域和闭包_JavaScript中执行上下文,提升,作用域和闭包的终极指南
- 2020级C语言大作业 - 王国保卫战
- Bootstrap面包屑导航
- 关于visual studio和vc版本之间的对应关系(更新至2020.07)
- iis打不开php,php出现404找不到网页错误 iis配置问题解决
- 教你如何用PQ魔法师调整硬盘分区大小
- 曲卉:高阶增长黑客实战营
- 吃饭。睡觉。打豆豆。
- css3循环360度图片旋转
- Dynamic GCN:Dynamic GCN: Context-enriched Topology Learning for Skeleton-based Action Recognition
- ubuntu的pycharm或程序卡主,强制关闭方法
- 【案例28】银行对账单管理-在线下载优化记录