如果我们想要交换两个数字的值,我们可以使用一个中间变量来暂时储存其中一个,再进行赋值操作,代码如下:

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函数相关推荐

  1. c++语言swap函数,C++中swap函数

    本文是我用到swap函数时,对其产生好奇,所以结合网上有关博文写下的.个人水平有限,若有错误的地方,欢迎留言指出.谢谢! 一.通用的函数交换模板 template void swap(T &a ...

  2. c语言 swap交换函数_重审C中老生常谈的swap函数交换数值

    概览 本文内容是关于C语言参数传值,以及x86底层实现的计算机科学. 包含了原理速览以及代码示例. 引言 如果你学习过C,可能会对经典的swap函数问题记忆深刻.简单的参数传值并不能在函数外部完成两个 ...

  3. 【C语言学习笔记】SWAP函数详解

    SWAP函数详解 本篇文章通过swap函数来深入了解C语言中函数的用法,与指针的应用.参考资料来源于经典书籍与技术博客的分享. 在复习完生存期相关的知识点后(详情可转至此处),初步认识了函数与本地变量 ...

  4. 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 ...

  5. c语言泛型swap函数,C 语言实现泛型 swap 函数

    由于C语言是强类型语言,所以通常我们在编写一些函数的时候就需要指定函数的类型.这就会导致同样的函数行为因为处理的类型不同,就可能需要为不同的类型编写不同的函数版本. 比如用于交换两个变量值的如swap ...

  6. Swap函数(C语言版)

    而以下两种是不能实现交换的: void swap1(int a,int b) {     int temp;     temp=a;     a=b;     b=temp; } void swap2 ...

  7. c语言 void swap,C语言的swap函数的易错点

    程序一:交换值 #include void swap(int *x , int *y){ int *temp; temp = x; x = y; y = temp; } void main(){ in ...

  8. C语言实现swap函数

    写一个函数交换两个整数的值 1. 贴出错误代码: '//看起来下面这个函数没有问题,其实这个函数是错误的.main函数中的a,b和swap函数中的x,y变量都有独立的内存空间.' '//swap函数只 ...

  9. C++ Swap函数有几种写法?

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/104344435 S ...

最新文章

  1. Lucene教程--维护索引、查询对象和相关度排序
  2. 动态规划(dynamic programming)基础【背包问题】
  3. mycat从0到成功进行分表操作
  4. iOS中的JSON解析
  5. HTML5 学习总结(二)——HTML5新增属性与表单元素
  6. 用电脑更新手机ios系统_macOS 11正式版:大更新!苹果把iOS风格搬到了电脑上
  7. js scroll事件
  8. mysql单表查询怎么做_mysql单表查询
  9. mysql索引的方法_mysql索引类型和索引方法
  10. charset参数 sqluldr2_SQLULDR2
  11. endnote文献使用简明教程+遇到问题
  12. 学会用CUPS管理打印机
  13. C语言中write函数
  14. Java使用POI将doc文档转为Html
  15. 前端项目中使用js-beautify格式化、美化js代码
  16. win10如何调整计算机时间同步,win10系统调整设置时间同步的频率的操作方法
  17. 金弘同创:拼多多怎么退保证金
  18. 360n4s高通版卡刷包
  19. SQL语句中DATEDIFF()函数的用法
  20. EZo UIBuilder 快速打造沪深股市实时行情

热门文章

  1. 主动学习active learning方法汇总
  2. java语言入门(一)之JAVA语言基的概述
  3. 《人月神话》译文修订明细(1)-读者可以对照修改
  4. 重庆市教育发展现状可视化分析报告(Python)
  5. Spring 与JMX
  6. private static PHP,PHP延时静态绑定以及self 和 static 的区别 | 剑花烟雨江南
  7. 微信签名算法验证通过,但微信仍然返回签名错误的解决
  8. android点击按钮打开wifi或者关闭wifi
  9. PonyCar体验感受
  10. iOS实现获取系统iTunes音乐的方法示例