交换两个数组元素的地址可以交换它们的值吗?
来源:互联网 发布:白金数据 豆瓣 书 编辑:程序博客网 时间:2024/05/17 03:44
#include<stdio.h>void SWAP(int *a,int *b){int *e;e=a;a=b;b=e;}void main(){int i;int A[2]={0,1};SWAP(&A[0],&A[1]);printf("the sorted num is:\n");for(i=0;i<2;i++) printf("A[%d]=%2d\n",i,A[i]);}
我们知道交换两个整数的地址可以交换两个整数的值。但是在数组中我们交换两个数组元素的地址它的输出结果会是A[0]=1,A[1]=0吗?答案是否定的。
原因
数组的实质是一段连续分配的指针,如果你定义了 int a[2]那么变量 a 就是指向开头的指针,a+1 即下一个,依此类推取元素值的操作 a[n] 实际上就是 *(a+n) 所以就算你真的“交换”了,a[n]的值还是不会变。
正确的代码
void SWAP(int *a,int *b){int e;e=*a;*a=*b;*b=e;}
输出结果
0 0
- 交换两个数组元素的地址可以交换它们的值吗?
- 给定两个数组,交换它们的元素,使得两数组元素之和的差绝对值最小
- 交换两个数组的值
- 交换两个数组的值
- 两个数组中对应元素值的交换
- 交换数组中两个位置的元素值
- java 两个变量之间如何交换它们的值
- Vector中两个元素值的交换
- 交换a,b两个元素的值
- 一条语句交换两个元素的值
- 两个元素内容的交换
- 在排序的数组中交换两个元素
- 交换一个数组前两个元素位置(@的用法)
- 遍历交换两个数组的值
- 交换两个数组的内容
- 交换两个数组的内容
- 交换两个数组的内容
- 交换两个数组的内容
- Css3文本新属性
- hadoop2.7.1对应的hadoop.dll,winutils.exe等。亲测,可用!
- 不停止MySQL服务增加从库的两种方式
- Android中长TextView实现跑马灯效果
- 找完数
- 交换两个数组元素的地址可以交换它们的值吗?
- C++primer学习:面象对象程序设计(4):继承类中的作用域和拷贝控制
- Android TextView文字过多时通过滚动条显示多余内容
- The Definitive C++ Book Guide and List
- Java线程之后台线程(守护线程)
- Python算法:动态规划
- Hibernate从入门到精通(3)- 集合的使用(List、Set、Map)
- eclipse安装Properties Editor 插件
- c#—— Task.FromResult 的使用