C语言中swap的作用和用法1.作用:swap的意思是交换两个变量的值,是一个自定义函数 。
2.用法:使a和b的值进行互换 。
例如:void swap(int*p1,int*p2)//*p1=a;*p2=b;
改变指针指向的地址的值 , 即a和b的值互换 。
3.其他用法
swap1只进行了值传递,所以函数调用结束后形参被释放 , 不能实现实参的值交换;
swap2直接使用全局变量,这样swap2函数和main函数操作的是同一个变量(地址和值都一样) , 可以实现值交换;
swap3使用传地址的方式,通过修改内存块来实现变量的值交换 , 是可以的 。
swap4使用引用()的方式,这样是给mian函数中待交换的变量起一个别名,并把把别名作为形参在swap4中进行处理,这其实就实现了形参和实参的地址和内容完全一样,当然可以实现值交换 , swap4的效果和swap2的一样,但这种定义方式更利于程序的调试和维护,同时也可以减小内存开销 。
swap5中虽然也把变量的地址传到了函数中,但在函数内部并没用修改地址指向的内存块而是把地址在形参上完成交换,swap5函数运行结束,所有的工作都会都是 , 而main函数中的变量也没有实现交换,这种情况和swap1类似 。
具体代码如下:
/*-----try to swap the value of a and b, but it does not work out.*/
/*void swap1(int x,int y)
{
int temp;
temp = x;
x = y;
y = temp;
}*/
/*------using the global variables can implement the swap----*/
/*int a(3),b(5);
//the declarations of a and b in the main function should be commented out.
void swap2()
{
int temp;
temp = a;
a = b;
b = temp;
}*/
/*----using the pointer to pass the address to the swap function*/
/*void swap3(int *px,int *py)
{
int temp;
temp = *px;
*px = *py;
*py = temp;
}*/
/*----using the reference operator()-----*/
void swap4(int x, int y)
{
int temp;
temp = x;
x = y;
y = temp;
}
/*----meaningless swap---*/
/*void swap5(int *px,int *py)
{
int *p;
p = px;
px = py;
px = p;
}*/
int main(int argc, char* argv[])
{
int a(3),b(5);
printf("before swap:= =\n",a,b);
swap4(a,b);
printf("after swap:= =\n",a,b);
return 0;
}
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语言
c语言,交换函数交换函数很好写 。
比较难的读文件 。文件格式 与 读语句要 相配 。特别是 多余 的 空行和回车键 。
调试时用 printf 语句 检查 读得对不对 。
fgets() 函数可用来读整行的字符串,含回车键 。
#include stdio.h
#includestdlib.h
void jh(char *a, char *b){
char x[100];
strcpy(x,a),strcpy(a,b),strcpy(b,x);
}
int main(){
FILE *fp;
int n,i,j;
char a[100];
char b[100];
char ch;
if((fp=fopen("2.2.txt","r"))==NULL){
printf("Error");
exit(0);
}
fgets(a,100,fp);
sscanf(a,"%d",n);
//printf("n=%d\n",n);
for(j=1;j=n;j){
fgets(a[0],100,fp);
//printf("read a: %s",a);
fgets(b[0],100,fp);
// printf("read b: %s",b);
printf("Case %d\n",j);
jh(a,b);
printf("%s",a);
printf("%s",b);
fgets(a[0],100,fp);// 假定2组数间只有一个空白行,则用它跳过 。
}
fclose(fp);
return 0;
}
【c语言中的交换函数 c语言交换变量】关于c语言中的交换函数和c语言交换变量的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 怎么关闭华为手机拦截提醒,华为如何关闭拦截提醒
- 苹果可能开放ios么,ios平台开放,所以可以在各类手机上使用
- 阿里云服务器部署wordpress,阿里云服务器部署教程
- mysql实例怎么扩容 mysqli扩展
- 苹果cms随机标签,苹果cmsv10标签
- 坦克大战即时战略休闲游戏的简单介绍
- 衣哥直播间直播卖货芦荟胶,衣哥直播间卖的产品是真的吗
- c语言自定义无参函数调用 c语言宏定义
- 微信广告主小程序路径,微信广告主小程序路径设置