void fun1(int a) //传值调用 ,咨信网zixin.com.cn" /> void "/>
收藏 分销(赏)

C语言实参、形参、函数调用、指针、引用、&符号实例.doc

上传人:xrp****65 文档编号:8994212 上传时间:2025-03-10 格式:DOC 页数:5 大小:61.50KB 下载积分:10 金币
下载 相关 举报
C语言实参、形参、函数调用、指针、引用、&符号实例.doc_第1页
第1页 / 共5页
C语言实参、形参、函数调用、指针、引用、&符号实例.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
C语言实参、形参、函数调用、指针、引用、*&符号实例 实现环境:VC6 程序源代码: #include "stdio.h" #include <malloc.h> void fun1(int a) //传值调用 { printf(" 形参a为:%d\n",a); a--; printf(" 形参a变为:%d\n",a); } void fun2(int *b) //指针调用 { printf(" 指针形参b为:%X\n", b); printf(" 指针形参b所指内容为:%d\n", *b); (*b)--; printf(" 指针形参b所指内容变为:%d\n", *b); } void fun3(int &c) //数值的引用调用,相当于给数值实参n起个新名字叫c,然后c就是实参n { printf(" 引用数值形参c的地址为:%X\n",&c); printf(" 引用数值形参c为:%d\n", c); c--; printf(" 引用数值形参c变为:%d\n", c); } void fun4(int * &d) //指针的引用调用,相当于给指针实参m起个新名字叫d,然后d就是实参m { printf(" 引用指针参数d为:%X\n", d); printf(" 引用指针参数d所指内容为:%d\n", *d); (*d)--; printf(" 引用指针参数d所指内容变为:%d\n", *d); } void main() { int n=11; //有11个苹果 printf("实参n为:%d\n",n); fun1(n); //传值调用 printf("数值n为:%d\n\n",n); printf("实参n的地址为:%X\n",&n); printf("数值n为:%d\n",n); fun2(&n); //指针调用 printf("实参n的地址为:%X\n",&n); printf("数值n为:%d\n\n",n); printf("实参n的地址为:%X\n",&n); printf("数值n为:%d\n",n); fun3(n); //数值的引用调用 printf("实参n的地址为:%X\n",&n); printf("数值n为:%d\n\n",n); int * m; m=&n; printf("数值n的地址为:%X\n",&n); printf("数值n为:%d\n",n); printf("指针m为:%X\n",m); fun4(m); //指针的引用调用 printf("数值n的地址为:%X\n",&n); printf("数值n为:%d\n",n); printf("指针m为:%X\n\n",m); } 参考内容: VC++中形参什么时候需要加&符号 引用不是必须的,因为用指针可以达到相同的效果 当你传递的实参值需要在函数中获取改变的时候,就需要传引用或者指针 假设有 n = 10 个苹果 void fun(int m) //传值函数,每调用一次减少一个苹果 fun(n);//如果按上面的声明 ,这样调用完后,n还是10,并没有变成9 在这种时候就需要用到引用或者指针 void fun(int &m) ; //引用类型函数声明 ,对应调用fun(n); // void fun(int *m); //指针类型函数声明 ,对应调用fun(&n); // 具体的函数体可以自己去写 事实上,引用的本质就是指针,使用引用能完成的事情,使用指针同样能完成 ,不过引用看上去更简洁和直观 引用参数 在形参表中以符号“&”开始的参数即为引用参数。 如果一个形参是引用参数,调用部位将把实参的地址传递给子程序。 于是子程序操作的就是实参真正的变量,而不是它的副本。 如果程序员想修改指针本身,而不是指针引用的对象: 那么他可以声明一个参数,该参数是一个指针的引用,例如:下面是交 换两个指针的函数。 1 2 3 4 5 void ptrswap( int * & v1, int * & v2 ) {   int *tmp = v2;   v2 = v1;   v1 = tmp;  } 如下声明  int * &v1;   //实际是为指针取了一个别名,这样就可以通过别名改变指针本身 应该从右向左读,v1 是一个引用,它引用一个指针,指针指向 int 型的对象。 用函数 main() 操纵函数 rswap() 我们可以如下修改代码以便交换两个指针值: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include <iostream>      void ptrswap( int *&v1, int *&v2 );  int main() {   int i = 10;   int j = 20;       int *pi = &i;   int *pj = &j;       cout << "Before ptrswap():\tpi: "    << *pi << "\tpj: " << *pj << endl;     //参数为指针的别名(即指针的引用,那么传递的实参就是指针本身,道理和传递普通变量一样的)  ptrswap( pi, pj );       cout << "After ptrswap():\tpi: "    << *pi << "\tpj: " << *pj << endl;   return 0;  } 编译并运行程序 产生下列输出  Before ptrswap(): pi: 10 pj: 20 After ptrswap(): pi: 20 pj: 10 参考: C++ 引用参数 深入分析 比如函数 void a(int &x,int &y) 当调用该函数时,如:a(m,n); 就相当于在执行函数体时,x为m的引用,y为n的引用 x,y相当于指向m,n的指针 相当于给m,n起的别名,这时在函数体内对x,y进行的操作实际上就是对m,n进行操作。 %d %o %x %X 分别是 十进制,八进制,十六进制(小写),十六进制(大些)的输出格式!
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服