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++中,当两个或更多的线程需要访问共享数据时,就会出现线程安全问题,这是因为,如果没有适当的同步机制,一个线程可能在另一个线程还没有完成对数据的修改就开始访问数据,这将导致数据的不一致性和程序的不可预测性,本文介绍了C++中线程同步与互斥的四种方式介绍及对比
    2025-01-01
  • C++发送邮件实现代码

    C++发送邮件实现代码

    这篇文章主要为大家详细介绍了C++发送邮件的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • C语言实现打飞机游戏

    C语言实现打飞机游戏

    这篇文章主要为大家详细介绍了C语言实现打飞机游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • c++ error:crosses initialization of问题解决分析

    c++ error:crosses initialization of问题解决分析

    这篇文章主要介绍了c++ error:crosses initialization ofde 问题解决分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • C++实现简易文本编辑器

    C++实现简易文本编辑器

    这篇文章主要为大家详细介绍了C++实现简易文本编辑器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • c++连接mysql5.6的出错问题总结

    c++连接mysql5.6的出错问题总结

    下面小编就为大家带来一篇c++连接mysql5.6的出错问题总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,祝大家游戏愉快哦
    2016-12-12
  • C语言代码详细描述顺序线性表

    C语言代码详细描述顺序线性表

    这篇文章主要用代码介绍了C语言线性表的顺序线性表,对于学习数据结构与算法的朋友很有参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 详解C++中的vector容器及用迭代器访问vector的方法

    详解C++中的vector容器及用迭代器访问vector的方法

    使用迭代器iterator可以更方便地解引用和访问成员,当然也包括vector中的元素,本文就来详解C++中的vector容器及用迭代器访问vector的方法,需要的朋友可以参考下
    2016-05-05
  • 一文带你了解C语言中static关键字的3个作用

    一文带你了解C语言中static关键字的3个作用

    static这个关键字是“静态”的意思,在C语言里主要有3个作用。这篇文章主要通过一些简单示例为大家详细讲讲这3个左右,感兴趣的小伙伴可以了解一下
    2023-04-04
  • C语言简单实现求n阶勒让德多项式的方法

    C语言简单实现求n阶勒让德多项式的方法

    这篇文章主要介绍了C语言简单实现求n阶勒让德多项式的方法,涉及C语言复杂浮点数运算的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-05-05

最新评论