c语言------Swap函数
如果我们想要交换两个数字的值,我们可以使用一个中间变量来暂时储存其中一个,再进行赋值操作,代码如下:
int a=2;
int b=4;
int temp=0;
temp=a;
a=b;
b=temp;
如果我们采用函数调用的方法,应该可以写出下面的代码,当然了这个代码是有问题的,我们后面再讨论
#include<stdio.h>
void swap(int a,int b)
{int temp;temp = a;a = b;b = temp;
}
int main()
{int a=2;int b=4;puts("函数调用前:");printf("a=%d\n",a);printf("b=%d\n",b);swap(a,b);puts("函数调用后:");printf("a=%d\n",a);printf("b=%d\n",b);return 0;
}
如果你运行的话,你会发现输出是有问题的:
为什么结果不会变?
这就涉及到按值传递的问题,在上述的代码中,实参向形参传递的是数值,并未改变实参本身的数值,所以说输出结果不变,如果不使用指针,我们可以将puts语句和printf语句放在swap函数内部,即如下
#include<stdio.h>
void swap(int a, int b)
{int temp;temp = a;a = b;b = temp;puts("函数调用后:");printf("a=%d\n", a);printf("b=%d\n", b);
}
int main()
{int a = 2;int b = 4;puts("函数调用前:");printf("a=%d\n", a);printf("b=%d\n", b);swap(a, b);return 0;
}
当然了,我们也可以使用指针来帮助我们,代码如下
#include<stdio.h>
void swap(int *a,int *b)
{int temp;temp = *a;*a =*b;*b = temp;
}
int main()
{int a=2;int b=4;puts("函数调用前:");printf("a=%d\n",a);printf("b=%d\n",b);swap(&a,&b);puts("函数调用后:");printf("a=%d\n",a);printf("b=%d\n",b);return 0;
}
此时可以看到运行结果是,
c语言------Swap函数相关推荐
- c++语言swap函数,C++中swap函数
本文是我用到swap函数时,对其产生好奇,所以结合网上有关博文写下的.个人水平有限,若有错误的地方,欢迎留言指出.谢谢! 一.通用的函数交换模板 template void swap(T &a ...
- c语言 swap交换函数_重审C中老生常谈的swap函数交换数值
概览 本文内容是关于C语言参数传值,以及x86底层实现的计算机科学. 包含了原理速览以及代码示例. 引言 如果你学习过C,可能会对经典的swap函数问题记忆深刻.简单的参数传值并不能在函数外部完成两个 ...
- 【C语言学习笔记】SWAP函数详解
SWAP函数详解 本篇文章通过swap函数来深入了解C语言中函数的用法,与指针的应用.参考资料来源于经典书籍与技术博客的分享. 在复习完生存期相关的知识点后(详情可转至此处),初步认识了函数与本地变量 ...
- C语言中利用Swap函数交换变量a,b
C语言中利用Swap函数交换变量a,b 常见错误写法 error1 void Sawp_error1(int a,int b) {int tmp;tmp=a;a=b;b=tmp; } int main ...
- c语言泛型swap函数,C 语言实现泛型 swap 函数
由于C语言是强类型语言,所以通常我们在编写一些函数的时候就需要指定函数的类型.这就会导致同样的函数行为因为处理的类型不同,就可能需要为不同的类型编写不同的函数版本. 比如用于交换两个变量值的如swap ...
- Swap函数(C语言版)
而以下两种是不能实现交换的: void swap1(int a,int b) { int temp; temp=a; a=b; b=temp; } void swap2 ...
- c语言 void swap,C语言的swap函数的易错点
程序一:交换值 #include void swap(int *x , int *y){ int *temp; temp = x; x = y; y = temp; } void main(){ in ...
- C语言实现swap函数
写一个函数交换两个整数的值 1. 贴出错误代码: '//看起来下面这个函数没有问题,其实这个函数是错误的.main函数中的a,b和swap函数中的x,y变量都有独立的内存空间.' '//swap函数只 ...
- C++ Swap函数有几种写法?
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/104344435 S ...
最新文章
- Lucene教程--维护索引、查询对象和相关度排序
- 动态规划(dynamic programming)基础【背包问题】
- mycat从0到成功进行分表操作
- iOS中的JSON解析
- HTML5 学习总结(二)——HTML5新增属性与表单元素
- 用电脑更新手机ios系统_macOS 11正式版:大更新!苹果把iOS风格搬到了电脑上
- js scroll事件
- mysql单表查询怎么做_mysql单表查询
- mysql索引的方法_mysql索引类型和索引方法
- charset参数 sqluldr2_SQLULDR2
- endnote文献使用简明教程+遇到问题
- 学会用CUPS管理打印机
- C语言中write函数
- Java使用POI将doc文档转为Html
- 前端项目中使用js-beautify格式化、美化js代码
- win10如何调整计算机时间同步,win10系统调整设置时间同步的频率的操作方法
- 金弘同创:拼多多怎么退保证金
- 360n4s高通版卡刷包
- SQL语句中DATEDIFF()函数的用法
- EZo UIBuilder 快速打造沪深股市实时行情