博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20140712 合并有序数组
阅读量:4684 次
发布时间:2019-06-09

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

1、合并有序数组

A(空间足够):1 2 5 9 12 14

B:3 6 7 9 17 18

2、为什么函数的实参传入指针可以修改值,直接传入值却不能

int f(int a, int b){a=5;b=6;}

void main()
{
    int x, int y;
    f(x, y);
}
a、b是形参,x和y是实参

三种传参方式:

1:以实参的副本形式。

    这种方式最容易理解,就是很多教程上所说的值传递。把实参的值复制给形参创建的局部对象。函数对形参做的改变不会影响到实参,因为他们是不同的对象。在讨论一下这种情况下的const。因为形参和实参是不同的对象,唯一的联系只是调用时的值传递,所以形参和实参的const修饰没有限制。常量也可以做为实参调用。但是声明为const的形参,只能引用,不能改变他的值。

2:以指针传送地址的形式。

      引用其实就是引用该变量的地址,“解”就是把该地址对应的东西解开,解出来,就像打开一个包裹一样,那就是该变量的值了,所以称为“解引用”

    指针所以传递的是地址。也就是说实参向形参传递的是实参所指向对象(这里的对象是否可以理解成内存)的地址。既然这样,形参在函数中解引用所改变的值,同时也改变了实参所指向对象的值,因为他们本身就是指向一个地址,即同一个对象。但因为函数调用所创建的局部形参指针,它也是实参指针的副本,所以当改变形参的指针值(即指向另一个对象)实参是没有随之改变的。

3:以引用形式,即和实参的对象相关联。
    引用是c++中才能见到的知识点。引用大家都很清楚是一个对象的别名,也就是说把引用名和一个对象相关联,他们是同一块内存空间的名字。既然这样。当形参定义成引用时很容易就能理解为什么函数中对引用的改变同时也是对实参的改变。

转载于:https://www.cnblogs.com/yexuannan/p/3838751.html

你可能感兴趣的文章
离线下载最新Dropbox安装包
查看>>
ACM-ICPC 2018 沈阳赛区网络预赛 I(模拟)
查看>>
asp.net 将word文档进行编辑并导出一个新的word
查看>>
如何在CMainFrame类中调用CxxxView视图类中的成员
查看>>
java编程基础(三)流程控制语句
查看>>
mysql bigint与bigint unsigned
查看>>
【转】为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?
查看>>
JavaScript模板引擎简介
查看>>
让数据库跑的更快的7个MySQL优化建议
查看>>
java之spring mvc之Restful风格开发及相关的配置
查看>>
python之poplib库
查看>>
mysql workbench连接不上远程数据库,xshell无法连接远程主机的问题
查看>>
jquery 取id模糊查询
查看>>
解决在vue中,自用mask模态框出来后,下层的元素依旧可以滑动的问题
查看>>
左偏树
查看>>
修改系统启动项 grub2配置的方法 ubuntu[转]
查看>>
深入探索c++对象模型
查看>>
bc 函数库同意
查看>>
[转]Ubuntu中apt与apt-get命令的区别
查看>>
修改node节点名称
查看>>