c++将引用作为函数的参数---6
原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/
引用经常被用作函数参数,使得函数中的变量名成为调用程序中的变量别名。这种传递参数 的方法称为按引用传递。按引用传递允许被调用的函数能够访问调用函数中的变量。C++新增这项特性是对C语言的超越,C语言只能按值传递。按值传递导致被 调用函数使用调用程序的值得拷贝。当然,C语言也允许避开按值传递的限制,采用按指针传递的方式。
代码:
#include <stdio.h>
#include <iostream> using namespace std; void TestAddress1(int p, int& a, int b)
{
cout << "TestAddress1" << endl;
cout << "p address:" << &p << "; p value:" << p << endl;
cout << "a address:" << &a << "; a value:" << a << endl;
cout << "b address:" << &b << "; b value:" << b << endl; int* c = &b;
c -= ;
cout << "c address:" << c << "; c value:" << *c << endl;
} void TestAddress2(int* a, int b)
{
cout << "TestAddress2" << endl;
cout << "a address:" << &a << "; a value:" << *a << endl;
cout << "b address:" << &b << "; b value:" << b << endl;
} int main()
{
int* a = new int[];
memset(a, , sizeof(int)* );
a[] = ;
int b = ;
int c = ; cout << "out a address:" << &a << endl;
cout << "out b address:" << &b << endl;
cout << "out c address:" << &c << endl; cout << "-----------------" << endl; TestAddress1(b, b, c); cout << "-----------------" << endl; TestAddress2(a, b);
}
c++将引用作为函数的参数---6的更多相关文章
- C++引用作为函数的参数
引用也可以作为一个函数的参数,如:我们定义交换两个数的函数swap,将函数的参数定义成引用的形式: void swap(int &p1, int &p2) //此处函数的形参都是引用 ...
- const引用和函数占位参数遇上默认参数以及内联函数
1.const引用: 但是加上const之后是可以的,const int &a=100;就不会报错了. 2.函数占位参数: 如果给最后的占位参数加上默认值: 3.内联函数 内联只是对编译器发起 ...
- Python——变量的引用和函数的参数和返回值的传递方式
变量的引用 在python中,所有的变量都是指向地址,变量本身不保存数据,而是保存数据在内存中的地址.我们用下面的程序来理解: a = 10 print(id(a)) a = 11 print(id( ...
- C++中,引用作为函数参数
引用作为函数参数 C++之所以增加引用类型, 主要是把它作为函数参数,以扩充函数传递数据的功能. ———————————————————— c++,函数传参:(1)将变量名作为实参和形参.这时传给形参 ...
- C++中使用引用作为函数参数的优点
1.传递引用给函数与传递指针的效果是一样的.这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标 对象(在主调函数中)的操作. ...
- php引用(&)变量引用,函数引用,对象引用和参数引用用法
php引用(&)变量引用,函数引用,对象引用和参数引用用法 php的引用(就是在变量或者函数.对象等前面加上&符号) 在PHP 中引用的意思是:不同的名字访问同一个变量内容.与C语 ...
- php自定义函数之参数的引用
在变量这个函数中,我们学习了变量的引用,我们来回顾一下知识:大理石平台支架 <?php $a = 10; $b = &$a; $a = 100; echo $a.'---------'. ...
- 深入理解python中函数传递参数是值传递还是引用传递
深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是"传对象引用 ...
- C++基础--引用做函数参数
引用,简单粗暴的解释叫做别名,简单粗暴的例子就是,我是熊叫大雄,但是很多时候别人不叫我熊叫大雄,会叫我大雄,粤语地区朋友爱叫我阿雄,有人叫我雄,所以,熊叫大雄这个变量的值是我,雄.大雄.阿雄是熊叫大雄 ...
随机推荐
- Program C--二分
My birthday is coming up and traditionally I’m serving pie. Not just one pie, no, I have a number N ...
- [网络技术][转]PPTP连接过程
转自:http://blog.csdn.net/zhu_hit/article/details/5698958 在未来几天会总结一下PPTP的工作过程,分为以下3篇讲述. 1. PPTP连接过程: 2 ...
- java基础-007
41.Servlet Servlet 是处理客户端请求并产生动态网页内容的Java类.Servlet主要是用来处理或者存储HTML表单提交的数据,产生动态内容,在无状态的HTTP协议下管理状态信息.所 ...
- PHP 中的 9 个魔术方法
这个标题有点牵强因为php有不只9种魔术方法, 但是这些将会引导你使用php魔术方法一个好的开始.它可能魔幻,但是并不需要魔杖. 这些'魔术'方法拥有者特殊的名字,以两个下划线开始,表示这些方法在ph ...
- android:强制关闭其他应用
强制关闭其他应用,可以使用ActivityManager,首先需要获取(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); 然后可以 ...
- (转)mysql各个主要版本之间的差异
原文:http://blog.csdn.net/z1988316/article/details/8095407 一.各版本的常用命令差异 show innodb status\G mysql-5 ...
- openstack 中 log模块分析
1 . 所在模块,一般在openstack/common/log.py,其实最主要的还是调用了python中的logging模块: 入口函数在 def setup(product_name, vers ...
- BZOJ 3997 组合数学
好厉害. 注意到到了(i,j)就一定到不了(i-1,j+1),那么可以dp啦.dp[i][j]表示(i,j)右上角都清了的方案数. #include<iostream> #include& ...
- AD管理命令
repadmin /showrepl 显示复制协议 dcdiag /test:dns
- iptables_forward
FORWARD 好了,我们接着往下走,这个包已经过了两个PREROUTING链了,这个时候,出现了一个分支转折的地方,也就是图中下方的那个菱形(FORWARD),转发!这里有一个对目的地址的判断(这里 ...