c语言函数调用互换两个数的值(5、使用C语言编写一个函数,用于交换两个变量的值(地址传递))

2024-02-20 14:00:25 36

c语言函数调用互换两个数的值(5、使用C语言编写一个函数,用于交换两个变量的值(地址传递))

本文目录

5、使用C语言编写一个函数,用于交换两个变量的值(地址传递)

不知道你要交换的两个变量类型,所以这里以整型数据交换为例,以下swap函数实现了交换两个整型变量值的功能:

#include 《stdio.h》// 交换给定指针指向整型变量的值。// 参数://a -》 指向第一个变量的指针//b -》 指向第二个变量的指针void swap(int* a, int * b);int main(int argc, int argv){int a = 3, b = 5;printf_s("交换前:a = %d, b = %d\n", a, b);swap(&a, &b);printf_s("交换后:a = %d, b = %d\n", a, b);return 0;}// 交换给定指针指向整型变量的值。// 参数://a -》 指向第一个变量的指针//b -》 指向第二个变量的指针void swap(int* a, int* b){// 声明一个临时变量,保存第一个指针指向变量// 的值。// 其中 *a 是取出 a 指针指向变量的值int temp = *a;// 将 b 指针指向的值赋值给 a 指针指向变量(*a) = (*b);// 将临时变量 temp 中保存的 a 指针指向变量的值赋值给// b 指针指向的变量。(*b) = temp;}

以上代码运行结果如下:

以下代码实现了使用宏定义作为模板,声明不同类型交换函数的功能,以下以声明double和float为例:

#include 《stdio.h》 // 声明一个函数代码模板,逻辑参考 swap(int* a, int* b)#define DEF_SWAP_FUNC(Type) void swap_##Type(Type* a, Type* b) \{ \Type temp = (*a); \(*a) = (*b); \(*b) = temp; \} // 使用模板声明并实现一个 double 类型变量交换函数,函数名为 swap_doubleDEF_SWAP_FUNC(double)// 使用模板声明并实现一个 float 类型变量交换函数,函数名为 swap_floatDEF_SWAP_FUNC(float)int main(int argc, int argv){// double 类型数据交换double da = 5.6, db = 3.5;printf_s("double 交换前:da = %lf, db = %lf\n", da, db);swap_double(&da, &db);printf_s("double 交换后:da = %lf, db = %lf\n", da, db);// float 类型数据交换float fa = 3.4, fb = 6.8;printf_s("float 交换前:fa = %f, fb = %f\n", fa, fb);swap_float(&fa, &fb);printf_s("float 交换前:fa = %f, fb = %f\n", fa, fb);return 0;}

运行结果如下:

c语言:调用函数,交换两个变量的值

这个无法交换数据。C语言函数参数的基本规则是值传递,所以传递时只能实现实参向形参的单向的、值的传递。这就是为什么需要使用指针才能实现值交换的原因。

编写c语言程序,实现交换两个变量值的操作

/*编写c语言程序,实现交换两个变量值的操作。要求:使用形参为指针的函数swap完成交换功能。 主函数中,使用整型指针从键盘输入两个整数,通过调用swap完成交换 输出交换前后的变量值进行比较。输入输出示例:Input two number:3 4Before change:a=3,b=4After change:a=4,b=3*///File: swap.c#include 《stdio.h》#include 《stdlib.h》void swap(int *a, int *b){ int tmp; tmp=*a; *a=*b; *b=tmp;}int main(){ int *a=NULL,*b=NULL; a=(int *)calloc(1,sizeof(int)); if(!a) { perror("calloc a err."); } b=(int *)calloc(1,sizeof(int)); if(!b) { perror("calloc b err."); } printf("Input two number:"); scanf("%d %d",a,b); printf("Before change:a=%d,b=%d\n",*a,*b); swap(a,b); printf("After change:a=%d,b=%d\n",*a,*b);return 0;}C:\mypro》gcc -g -Wall swap.c -o swapC:\mypro》swapInput two number:3 4Before change:a=3,b=4After change:a=4,b=3C:\mypro》程序已调好,直接运行即可。

C语言中定义一个函数交换两个数的值

#include 《stdio.h》

void Swap1(int* a, int* b)

{

    int c = *a;

    *a = *b;

    *b = c;

}

main()

{

    int a, b;

    scanf("%d,%d", &a, &b);

    printf("\na=%d,b=%d", a, b);

    Swap1(&a, &b);

    printf("\na=%d,b=%d", a, b);

}

c语言函数的使用,定义一个交换函数 实现2个数字的交换

void Swap(int&x,int&y)

{

int temp=0;

temp=x;

x=y;

y=temp;

}

int main()

{

int a=1;

int b=2;

Swap(a,b);

cout《《"a="《《a《《endl;

cout《《"b="《《b《《endl;

system("pause");

return 0;

}

运行结果:

扩展资料:

用指针交换:

void Swap(int*x,int*y)

{

int temp=0;

temp=*x;

*x=*y;

*y=temp;

}

int main()

{

int x=1;

int y=2;

Swap(&x,&y);

printf("x=%d,y=%d\n",x,y);

system("pause");

return 0;

}

运行结果:

X=2;Y=1

C语言用函数如何实现两个数交换

#include"stdio.h"int swap(int *a,int *b){int temp;temp=*a;*a=*b;*b=temp;}

main(){int x,y;printf("请输入x与y的值,用空格隔开\n");scanf("%d%d",&x,&y);printf("x=%d,y=%d\n",x,y);swap(&x,&y);printf("交换后\nx=%d,y=%d\n",x,y);}

扩展资料:

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

C语言 :通过函数交换两个变量的值

#include 《stdio.h》void swap_1(int*a,int*b)//方法一,定义临时变量{    int temp=*a;    *a=*b;    *b=temp;}void swap_2(int*a,int*b)//方法二,利用加减法运算{    *a=*a+*b;    *b=*a-*b;    *a=*a-*b;}void swap_3(int*a,int*b)//方法三,利用位运算{    *a=*a^*b;    *b=*a^*b;    *a=*a^*b;}int main(){    int x,y;    scanf("%d%d",&x,&y);    printf("x=%d,y=%d\n",x,y);    swap_1(&x,&y);//或swap_2(&x,&y);或swap_3(&x,&y);    printf("x=%d,y=%d\n",x,y);    return 0;}

怎样用函数调用交换两个数的值 c语言

#include《stdio.h》voidchange(int*a,int*b){intm;//定义一个临时变量m=*a;//把a指向的值放到m中*a=*b;//把b指向的值放到a指向的内存中*b=m;//把m中的值放到b指向的空间中,函数调用结束时m的生成周期也完了,就释放掉了}intmain(){inti=1;intj=2;change(&i,&j);//函数调用printf("%d,%d\n",i,j);return0;}

c语言中用函数交换两个变量的值

c语言中用函数交换两个变量的值方法是先将变量赋值给中间变量,然后中间变量再赋值给另外一个变量,程序如下:

#include "Stdio.h"

#include "Conio.h"

void swap(int x,int y)

int t,m;

t=x;  //变量x赋值给中间变量t

m=y;    //变量y赋值给中间变量m

x=m;    //中间变量m赋值给变量x,将y的值赋值给了x。

y=t;      //中间变量t赋值给变量y,将x的值赋值给了y。

}

main()

int a,b;

a=1,b=2;

swap(a,b); //调用交换函数

printf("%d,%d",a,b);

getch(); 

}

扩展资料:

C语言的语法结构:

1、顺序结构

顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。

例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子里面的水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c;执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b =c;则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。

顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算、输出三步曲的程序就是顺序结构。

2、选择结构

对于要先做判断再选择的问题就要使用选择结构。选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。选择结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的选择语句。

选择结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。

3、循环结构

循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do while循环和for循环。

四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误。

c语言函数调用互换两个数的值(5、使用C语言编写一个函数,用于交换两个变量的值(地址传递))

本文编辑:admin

更多文章:


shelves是什么意思(shelves是什么意思)

shelves是什么意思(shelves是什么意思)

本文目录shelves是什么意思英语单词“shelf”是什么意思shelf复数是什么shelves中文Shelf怎么读Shelf 是什么意思shelf是啥意思coin,inside,shelves,themed 分别是什么意思shelves

2024年7月5日 04:43

highcharts动态数据(highcharts怎么实现动态刷新)

highcharts动态数据(highcharts怎么实现动态刷新)

本文目录highcharts怎么实现动态刷新highcharts如何动态改变数据标签的字体颜色highcharts 怎样动态为series的name,data赋值用highcharts加载图像之后动态改变图像Highcharts动态显示多条

2024年5月12日 06:20

db2数据库连接配置(db2的sqc文件里怎么连接数据库)

db2数据库连接配置(db2的sqc文件里怎么连接数据库)

各位老铁们,大家好,今天由我来为大家分享db2数据库连接配置,以及db2的sqc文件里怎么连接数据库的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录

2024年7月19日 06:45

fgets的头文件(C++中读取文件怎么跳过文件头)

fgets的头文件(C++中读取文件怎么跳过文件头)

大家好,fgets的头文件相信很多的网友都不是很明白,包括C++中读取文件怎么跳过文件头也是一样,不过没有关系,接下来就来为大家分享关于fgets的头文件和C++中读取文件怎么跳过文件头的一些知识点,大家可以关注收藏,免得下次来找不到哦,下

2024年9月4日 14:25

vim配置文件在哪里(vim 配置问题 :ctags 在windows 下怎样安装)

vim配置文件在哪里(vim 配置问题 :ctags 在windows 下怎样安装)

本文目录vim 配置问题 :ctags 在windows 下怎样安装.vimrc在哪里我现在用的是mac电脑,想请教一下,在mac终端下,自带的vim的配置文件在什么地方,我为什么找不到vimrclinux的vi的配置文件vi.config

2024年7月14日 04:48

【A2DP】A2DP是什么?手机停用蓝牙a2dp硬件卸载什么意思

【A2DP】A2DP是什么?手机停用蓝牙a2dp硬件卸载什么意思

本文目录【A2DP】A2DP是什么手机停用蓝牙a2dp硬件卸载什么意思【A2DP】A2DP是什么A2DP定义了ACL(Asynchronous Connectionless 异步无连接)信道上传送单声道或立体声等高质量音 A2DP 功能频信

2024年7月14日 06:19

java map是什么(java中Map的用法和含义)

java map是什么(java中Map的用法和含义)

本文目录java中Map的用法和含义java 中的map是什么java中Map是什么意思,最重要的是怎么能用上Java中的map是线性结构吗java中Map类有什么作用,具体怎么用呢java map 的用法在JAVA中Map和HashMap

2024年7月2日 17:04

js open()(js windows.open()不能打开页面 代码如下)

js open()(js windows.open()不能打开页面 代码如下)

本文目录js windows.open()不能打开页面 代码如下js中widow.open()方法使用详解js:window.open()设置新打开的页面的大小不可改变的问题JS 用window.open()函数,父级页面如何取到子级页面的

2024年7月10日 20:56

nodejs网站源码(node源码系列----编译nodejs-v16)

nodejs网站源码(node源码系列----编译nodejs-v16)

本文目录node源码系列----编译nodejs-v16nodejs模块源码能直接使用吗求一个nodejs源代码,不依赖于express的nodejs怎么把html以源码的形式在网页中显示了,而不是解析它nodejs linux源码安装要多

2024年6月13日 14:05

网页制作个人简历网页的步骤(个人简历怎么做)

网页制作个人简历网页的步骤(个人简历怎么做)

本文目录个人简历怎么做简历怎么制作啊个人简历怎样在电脑上制作电子简历怎么做怎么做个人简历,我不是很会电脑,怎样打开网页做怎样在电脑上制作简历个人简历用网页设计怎么做个人简历怎么做在电脑上制作个人简历模板,一般是用word或者直接百度搜索在线

2024年6月20日 03:30

集成电路芯片设计(芯片设计需要计算机知识吗)

集成电路芯片设计(芯片设计需要计算机知识吗)

大家好,关于集成电路芯片设计很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于芯片设计需要计算机知识吗的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录芯片

2024年7月12日 20:05

instinct是什么意思(intuition和instinct的区别)

instinct是什么意思(intuition和instinct的区别)

大家好,instinct是什么意思相信很多的网友都不是很明白,包括intuition和instinct的区别也是一样,不过没有关系,接下来就来为大家分享关于instinct是什么意思和intuition和instinct的区别的一些知识点,

2024年7月19日 21:10

coriander(Coriander是什么颜色)

coriander(Coriander是什么颜色)

本篇文章给大家谈谈coriander,以及Coriander是什么颜色对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录Coriander是什

2024年7月11日 08:24

网页即时聊天室(能不能具体介绍一下如何在自己我网页中加入聊天室)

网页即时聊天室(能不能具体介绍一下如何在自己我网页中加入聊天室)

本文目录能不能具体介绍一下如何在自己我网页中加入聊天室网页聊天室的功能介绍网页聊天室是什么啊网页即时在线聊天是怎么实现的网页实时聊天要怎么实现如何用JSP实现网页聊天室能不能具体介绍一下如何在自己我网页中加入聊天室您好,无法登陆百度聊天室,

2024年7月14日 07:02

zabbix监控系统(zabbix 监控nas 文件系统 网络异常)

zabbix监控系统(zabbix 监控nas 文件系统 网络异常)

本文目录zabbix 监控nas 文件系统 网络异常Zabbix介绍与使用运维监控 zabbix可以做哪些监控对网络运行状况进行监控的软件是zabbix可以监控什么zabbix对dhcp分配什么是zabbixZabbix支持对k8s监控吗Z

2024年4月19日 18:10

用html做一个通用的页面菜单栏?移动端网页菜单设计原则

用html做一个通用的页面菜单栏?移动端网页菜单设计原则

本文目录用html做一个通用的页面菜单栏移动端网页菜单设计原则菜单模板怎么设计网页中这样的菜单怎么做_网页的菜单栏如何显示怎样用dw制作导航栏下拉菜单ps菜单怎么制作网页导航栏的设计方式有哪些excel表中设计菜单栏里面有个设计选项如果用户

2024年7月4日 22:45

jsp内置对象的生命周期包含哪几种(jsp的内置对象)

jsp内置对象的生命周期包含哪几种(jsp的内置对象)

本篇文章给大家谈谈jsp内置对象的生命周期包含哪几种,以及jsp的内置对象对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录jsp的内置对象关

2024年7月20日 01:55

国内重要的学术评价数据库有?全国数据库被炸毁会怎么样

国内重要的学术评价数据库有?全国数据库被炸毁会怎么样

本文目录国内重要的学术评价数据库有全国数据库被炸毁会怎么样全国数据库和省内数据库的区别全国汉籍数据库看不了采血指纹入全国的数据库有什么好处和坏处入全国的数据库可以注销了负面信息但是数据库里面的的信息有没有全国法律法规数据库是什么中国最大的数

2024年7月24日 07:43

手机网站搜索优化(手机网站优化有什么规范)

手机网站搜索优化(手机网站优化有什么规范)

各位老铁们好,相信很多人对手机网站搜索优化都不是特别的了解,因此呢,今天就来为大家分享下关于手机网站搜索优化以及手机网站优化有什么规范的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录手机网站优化有什么规范手机网站

2024年7月16日 07:24

archer是什么意思(archer是什么意思)

archer是什么意思(archer是什么意思)

本文目录archer是什么意思shooter和archer的区别是什么archer什么意思archer是什么意思弓箭手短语Arcane Archer 魔射手 ; 魔箭手 ; 秘箭手 ; 魔弓手Horse Archer 骑射手 ; 马弓兵 ;

2024年6月15日 06:59

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1731
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索