Chinaunix首页 | 论坛 | 博客
  • 博客访问: 187429
  • 博文数量: 55
  • 博客积分: 1466
  • 博客等级: 上尉
  • 技术积分: 716
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-13 22:34
文章分类

全部博文(55)

文章存档

2011年(27)

2010年(28)

我的朋友

分类: LINUX

2010-10-26 14:07:33

#include <iostream> using namespace std; void change(int *a,int &b,int c) //这里的形参是*a,&b,c呢,还是a,b,c? { c = *a; b = 3; *a = 2; } int main() { int a = 1,b = 2, c = 5; change(&a,b,c);//这里的实参是&a,b,c呢,还是a,b,c? cout<<a<<b<<c<<endl; return 0; }

运行结果是 2 3 5  

实参是a的地址,b的引用,和c的值 ,形参问得就有问题。

形参是用来表明函数本身需要实参的类型,这里的a,b,c跟主函数里的变量a,b,c没有任何关系。为防止混淆,这里把形参 a,b,c换成 aa,bb,cc
void change(int *aa,int &bb,int cc) 
int *aa:需要一个int型指针(地址) 即 参数aa是一个地址
int &bb: 需要int型变量名的引用 参数bb是一个变量名的引用
int cc: 需要一个int型的值 参数cc是一个int型值

实参是传给函数的实际值
change(&a,b,c); //实参:a的地址,b的引用(*),和c的值
(*)调用时函数会通过形参(int &bb)来判断

这样一来 aa = 变量a的地址
  bb = 变量b的别名
  cc = 变量c的值
阅读(6616) | 评论(1) | 转发(0) |
0

上一篇: Linux分页机制

下一篇:kill(1),kill(2)等

给主人留下些什么吧!~~

chinaunix网友2010-10-26 18:52:59

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com