C语言之地址传递和引用传递的问题

 更新时间:2023年12月05日 09:40:47   作者:donoot  
这篇文章主要介绍了C语言之地址传递和引用传递的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

C语言地址传递和引用传递

函数的参数传递方式有两种

  • 一种是普通变量传递数值
  • 另一种为使用指针变量传递地址

如下列程序,程序扩展名为C

//本程序名为:地址传递.c
#include<stdio.h>
 
void exchg(int *px,int *py){
//此类是针对地址处的数值进行变化,指针关系不动	
	int tmp=*px;
	*px=*py;//地址处的数值变化 
	*py=tmp;
 
//此类仅仅转换地址,地址处的数值并无变化 
/* 
int *tmp;
tmp=px;
px=py;
py=tmp;
	*/ 
}
int main()
{
	int a=4,b=6;
	exchg(&a,&b);
	printf("a=%d,b=%d。\n",a,b);
return 0; 
} 

此程序中,输出结果为a=6,b=4。

实现数值转换。

参数传递中还有一种被称为是“引用传递”,目前C语言不支持该类型的传递,但是C++支持。

看下列程序:

//本程序名为:引用传递.cpp
#include <stdio.h>
 
int exchg(int &x,int &y){
	int tmp=x;
	x=y;
	y=tmp;
	printf("x=%d,y=%d\n",x,y);
	return 0;
}
 
int main(){
	int a=6,b=4;
	printf("a=%d,b=%d\n",a,b);
	
	exchg(a,b);
		printf("a=%d,b=%d\n",a,b);
	
	return 0; 
	
} 

此程序代码中exchg(int &x,int &y)函数会将a,b分别代替x,y,此时x,y分别引用了a,b变量。

此二类有关函数中的地址传递和引用传递务必熟练掌握领会。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 温故C语言内存管理

    温故C语言内存管理

    这篇文章主要介绍了 C语言内存管理的相关资料,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • C++命名空间namespace的介绍与使用

    C++命名空间namespace的介绍与使用

    今天小编就为大家分享一篇关于C++命名空间namespace的介绍与使用,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • 浅谈关于指针作为参数并改变它的值的问题

    浅谈关于指针作为参数并改变它的值的问题

    这篇文章介绍了关于指针作为参数并改变它的值的问题,有需要的朋友可以参考一下
    2013-10-10
  • C++函数中return语句的使用方法

    C++函数中return语句的使用方法

    C++中的return语句是函数中一个重要的语句,return语句用于结束当前正在执行的函数,并将控制权返回给调用此函数的函数,需要的朋友可以了解下
    2012-12-12
  • c++实现新年烟花效果完整代码

    c++实现新年烟花效果完整代码

    这篇文章主要给大家介绍了关于c++实现新年烟花效果的相关资料,文中给出了详细完整代码,适合初学C语言/C++的小伙伴学习研究,需要的朋友可以参考下
    2023-11-11
  • C++实现聊天程序

    C++实现聊天程序

    这篇文章主要为大家详细介绍了C++实现类似QQ聊天程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 一文学会数据结构-堆

    一文学会数据结构-堆

    本文主要介绍了数据结构-堆,文中通过图片和大量的代码讲解的非常详细,需要学习的朋友可以参考下这篇文章,希望可以帮助到你
    2021-08-08
  • C语言动态开辟内存详解

    C语言动态开辟内存详解

    这篇文章主要为大家详细介绍了C语言动态开辟内存,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • C++图文并茂分析讲解内存管理

    C++图文并茂分析讲解内存管理

    本章主要介绍C语言与C++的内存管理,以C++的内存分布作为引入,介绍C++不同于C语言的内存管理方式(new delete对比 malloc free),感兴趣的朋友来看看吧
    2022-09-09
  • OpenCV实现平均背景法

    OpenCV实现平均背景法

    这篇文章主要为大家详细介绍了OpenCV实现平均背景法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03

最新评论