黑马程序员——用函数实现两变量值交换
来源:互联网 发布:用mac可以玩的游戏 编辑:程序博客网 时间:2024/06/13 23:13
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一 .以下是两种错误的写法,无法实现两变量值的交换
1.a和b值不变
void swap1(int a,int b){ int temp; temp = a; a = b; b = temp;}int main(int argc, const char * argv[]) { int a = 4,b = 5; // a = 5,b = 4 printf("交换前:a = %d,b = %d\n",a,b); swap1(a,b); printf("交换后:a = %d,b = %d\n",a,b); return 0;}
swap1函数实现的是形参a和b值得交换,跟实参没有关系,所以交换前后打印结果不变。
2.交换形参的地址,并未改变a,b的值
void swap2(int *p<span style="font-family: Arial, Helvetica, sans-serif;">,int *p1){</span> int *temp; temp =p; p= p1; p1= temp;}int main(int argc, const char * argv[]) { int a = 4,b = 5; // a = 5,b = 4 printf("交换前:a = %d,b = %d\n",a,b); swap2(&a,&b); printf("交换后:a = %d,b = %d\n",a,b); return 0;}
二.正确写法
通过指针直接修改变量的值。
void swap3(int *p<span style="font-family: Arial, Helvetica, sans-serif;">,int *p1){</span> int temp; temp =*p; *p= *p1; *p1= *temp;}int main(int argc, const char * argv[]) { int a = 4,b = 5; // a = 5,b = 4 printf("交换前:a = %d,b = %d\n",a,b); swap3(&a,&b); printf("交换后:a = %d,b = %d\n",a,b); return 0;}
改变两个地址所指向的内容,即改变a和b的值。
0 0
- 黑马程序员——用函数实现两变量值交换
- 黑马程序员笔记:Java基础知识之位运算--两变量值交换方法
- 应用:用函数实现两个变量值的交换
- 黑马程序员_C语言三种方法实现两个变量值的交换
- 黑马程序员__三种方法实现两个变量值的交换
- 两种交换变量值的方法
- 全局变量值交换,swap函数参数要用指针
- java 用栈实现快速交换两个变量值
- Python、C++中编写函数以及不使用临时变量交换两变量值的比较
- 黑马程序员——C语言日志——指针、地址和变量值
- C语言的那些事——用指针交换两个变量值
- 变量值交换
- 70.交换变量值
- 交换两个变量值
- 交换两个变量值
- PHP交换变量值
- 变量值交换
- c\c++交换两变量值的三种方法
- JAVA实验第二天
- oracle 中BETWEEN命令
- Eclipse设置编译文件.class输出路径
- Compare Version Numbers
- 文章标题
- 黑马程序员——用函数实现两变量值交换
- 《算法导论》 - 第6章 - 堆排序 - 习题解答
- C# 中的委托和事件
- URL设计规范
- final修饰的变量是引用不能改变还是引用的对象不能改变
- linux程序设计——第一个线程程序(第十二章)
- Codeforces Round #311 (Div. 2)判环+Trie 好
- HBase数据存储格式
- leetcode 219:Contains Duplicate II