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++读取和写入TXT文件的整理方法

    c++读取和写入TXT文件的整理方法

    今天小编就为大家分享一篇c++读取和写入TXT文件的整理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • C语言实现简单扫雷源码

    C语言实现简单扫雷源码

    这篇文章主要为大家详细介绍了C语言实现简单扫雷源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • C语言宏定义#define的使用

    C语言宏定义#define的使用

    本文主要介绍了C语言宏定义#define的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • string居然也可以用<<和>>

    string居然也可以用<<和>>

    今天小编就为大家分享一篇关于string居然也可以用<<和>>,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • C语言指针必备基础全面覆盖

    C语言指针必备基础全面覆盖

    数据对象是指存储在内存中的一个指定数据类型的数值或字符串,它们都有一个自己的地址,指针是保存这个地址的变量,本篇文章带你掌握C语言指针的用法
    2021-10-10
  • C语言链接属性的实践应用

    C语言链接属性的实践应用

    C语言中链接属性决定如何处理在不同文件中出现的标示符,下面这篇文章主要给大家介绍了关于C语言链接属性的实践应用,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • C++ win系统如何用MinGW编译Boost库

    C++ win系统如何用MinGW编译Boost库

    这篇文章主要介绍了C++ win系统如何用MinGW编译Boost库问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • C语言野指针及如何规避详解

    C语言野指针及如何规避详解

    这篇文章主要为大家介绍了C语言野指针及如何规避详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • C语言中字符串的存储方法

    C语言中字符串的存储方法

    这篇文章主要为大家详细介绍了C语言中字符串的存储方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • C++实现LeetCode(156.二叉树的上下颠倒)

    C++实现LeetCode(156.二叉树的上下颠倒)

    这篇文章主要介绍了C++实现LeetCode(156.二叉树的上下颠倒),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07

最新评论