引用方式调用函数

通过引用传递方式,形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。

传递指针可以让多个函数访问指针所引用的对象,而不用把对象声明为全局可访问。

/* 函数定义 */
void swap(int *x, int *y)
{int temp;temp = *x;    /* 保存地址 x 的值 */*x = *y;      /* 把 y 赋值给 x */*y = temp;    /* 把 temp 赋值给 y */return;
}

在主函数里面用引用传值来调用函数 swap():

#include <stdio.h>/* 函数声明 */
void swap(int *x, int *y);int main ()
{/* 局部变量定义 */int a = 100;int b = 200;printf("交换前,a 的值: %d\n", a );printf("交换前,b 的值: %d\n", b );/* 调用函数来交换值* &a 表示指向 a 的指针,即变量 a 的地址 * &b 表示指向 b 的指针,即变量 b 的地址 */swap(&a, &b);printf("交换后,a 的值: %d\n", a );printf("交换后,b 的值: %d\n", b );return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

交换前,a 的值: 100
交换前,b 的值: 200
交换后,a 的值: 200
交换后,b 的值: 100

上面的实例表明了,与传值调用不同,引用调用在函数内改变了 a 和 b 的值,实际上也改变了函数外 a 和 b 的值。

C语言引用方式调用函数相关推荐

  1. c语言 函数 引用调用,C 引用方式调用函数

    C 引用方式调用函数 向函数传递参数的引用调用方法,把参数的地址复制给形式参数.在函数内,该地址用于访问调用中要用到的实际参数.这意味着,修改形式参数会影响实际参数. 按引用传递值,参数指针被传递给函 ...

  2. js中以构造函数方式调用函数

    构造器函数(Constructor functions)的定义和任何其它函数一样,我们可以使用函数声明.函数表达式或者函数构造器(见以前的随笔)等方式来构造函数对象. 要以构造函数的方式调用函数,只需 ...

  3. C语言学习笔记——调用函数时提示警告

    [代码] int main() { abc(); abc3(); return 0; } void abc() { int a=65135; double i=8256.67; a=(int)i+a; ...

  4. c++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取,C++综合练习题2...

    C++程序设计综合练习题(二) 一.单项选择题 1. 静态成员函数没有() A. 返回值 B. this指针 C. 指针参数 D. 返回类型 2. 假定AB为一个类,则执行"AB a(2), ...

  5. c语言中被调用函数只需在主调函数中声明,其他函数中不用声明,求助,函数在其他函数中使用时要先声明后调用,这个没声明就用了...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 如题,程序如下: #include #include //malloc,calloc,free,realloc头文件 #define LEN sizeof ...

  6. c++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取,2013年计算机二级C++模拟试题十一及答案...

    28.下面程序的结果为( ) #include int c; class A{ private: int a; static int b; public: A() {a=0;c=0;} void se ...

  7. c语言中调用平均成绩,C语言、用调用函数、输入3个学生5门课程的成绩分别用函数求每个学生平均分每门课的平均分...

    满意答案 wzbowei 2013.11.23 采纳率:45%    等级:12 已帮助:6317人 #include float sum1(float p[][5],float reault1[], ...

  8. 最小公倍数c语言调用该函数,C语言中如何调用函数求最大公约数和最小公倍数...

    #include int a; int _Y(int x,int y); int main() { int a,b,c,d; printf("请输入数字:"); scanf(&qu ...

  9. c语言学习-自定义并调用函数求三个数的最小公倍数

    c语言自定义并调用函数求三个数的最小公倍数 程序流程图: 代码: #include<stdio.h> int la1(int m ,int n,int p); int la2(int m ...

  10. C语言-第10章-函数

    文章目录 10.0 导入例子 10.1 函数基础 10.1.1 函数的定义.调用 10.1.2 定义和调用没有返回值的函数或者没有输入的函数 10.1.3 return语句 10.1.4 函数的嵌套调 ...

最新文章

  1. 设置默认settings文件_Django 学习笔记系列 之 settings.py 设定
  2. Kettle性能调优汇总
  3. 梯度消失问题学习资料整理
  4. DPDK vhost-user详解(五)
  5. JAVA中ListIterator和Iterator详解与辨析
  6. 鱼油账号记录程序(续) - 零基础入门学习Delphi39
  7. [转]OpenContrail 体系架构文档
  8. netty 图解_Netty工作原理架构图
  9. CentOS 8安装Redis的两种方式
  10. python数字转换成字符串比较大小_Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、...
  11. 三大统计相关系数:Pearson、Spearman秩相关系数、kendall等级相关系数
  12. 四则运算2之设计思路篇
  13. Eclipse中 Clean 的时候总是警告 org.apache.catalina.webresources.Cache backgroundProcess
  14. 2018-01-29(HTML+CSS)
  15. CATIA_CAA_RADER26+VS2012安装教程
  16. 来了解质量管理工具——质量屋(HOQ)
  17. 试用期没过,因在公司上了 1024 网站...
  18. 有关神经网络的训练算法,神经网络算法通俗解释
  19. 以人工智能和大数据为核心的第四次工业革命已经悄然而至
  20. LeetCode hot-100 简单and中等难度,81-90.

热门文章

  1. Windows电脑垃圾的清理
  2. ionic刷新html页面,Ionic实现页面下拉刷新(ion-refresher)功能代码
  3. 从卫星影像的视角见证莆田母亲河(美丽的木兰溪)改造前后的容颜变化
  4. Scala学习笔记2 (Lang上篇)
  5. react 组件 进阶之 ref (ts 版本)
  6. vue3 ts版本深度拷贝功能推荐ts-deepmerge
  7. 饥荒控制台输入没用_饥荒代码为什么我输入没反应
  8. 2021年熔化焊接与热切割考试题库与解析
  9. 【人工大猩猩部队优化算法】基于人工大猩猩部队优化算法求解单目标优化问题(GTO)含Matlab源码
  10. Matlab求集合交集和并集