通过调用函数实现a与b的交换
来源:互联网 发布:spss中文版软件下载 编辑:程序博客网 时间:2024/06/05 15:22
刚才通过汇编大略理解C了语言的指针
如下题目可以更好的佐证:
void swap(int i, int j)
{
int temp;
temp = i;
i = j;
j = temp;
}
int main(void)
{
int a = 2, b = 3;
swap(a, b);
printf("a = %d, b = %d/n",a b);
return 0;
}
实际上只是交换了swap函数中的i和j,而调用完swap函数而回到main函数后,i和j的生命期已经结束了,不会影响a和b。
(通过反汇编)也就是说,swap函数只是交换了a和b的副本。
可做如下修改即可:
void swap(int *i, int *j)
{
int temp;
temp = *i;
*i = *j;
*j = temp;
}
int main(void)
{
int a = 2, b = 3;
swap(&a, &b);
printf("a = %d, b = %d/n",a b);
return 0;
}
用变量a和b的首地址传参,用指针变量接受参数,改变的就是a和b地址存放的内容,即a与b的值在swap函数体内实现交换。
- 通过调用函数实现a与b的交换
- 有两个序列a,b,要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。
- a,b交换与比较
- a与b值交换
- 32 通过交换使a元素的和与b元素的和]之间的差最小
- 32 通过交换使a元素的和与b元素的和]之间的差最小
- 通过位运算交换a 和 b
- 通过交换a,b 中的元素,使[序列a 元素的和]与[序列b 元素的和]之间的差最小
- 【每日面试题】通过交换a,b 中的元素,使[序列a 元素的和]与[序列b 元素的和]之间的差最小
- 通过交换a,b+中的元素,使[序列a+元素的和]与[序列b+元素的和]之间的差最小。
- 通过交换a,b+中的元素,使[序列a+元素的和]与[序列b+元素的和]之间的差最小
- 通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小
- 通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小
- 通过交换a,b 中的元素,使[序列a 元素的和]与[序列b 元素的和]之间的差最小
- 通过交换a,b 中的元素,使[序列a 元素的和]与[序列b 元素的和]之间的差最小
- 经典算法之6:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小
- 微软算法100道题------通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小
- 通过交换a,b中的元素,使[数组a元素的和]与[数组b元素的和]之间的差最小
- C#中的同步锁问题
- 线程,同步与锁————Lock你到底锁住了谁?
- COME
- 手把手教你iPhone 3G手机软件开发
- 蛮抑郁的
- 通过调用函数实现a与b的交换
- Workflow表决的例子
- jQuery 1.4版本的15个新功能
- 简单状态机Workflow基于Web应用
- c#各个窗体间变量和空间相互引用方法
- 设计经验
- 构造方法的访问级别之private
- Series60 2nd应用程序间的通信
- 我们的幸福