[C.C++] 交换变量地址 c语言,C/C++知识点之C语言内存地址交换

1033 0
Honkers 2025-4-28 20:17:40 | 显示全部楼层 |阅读模式

本文主要向大家介绍了C/C++知识点之C语言内存地址交换,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。C语言课很无聊,因为之前学过C#所以就感觉特别的无聊.

但是,只能说我看过,不能代表我懂.

特别是这个地址交换.但是我是想做一个排序尺算法,里面有一个Swap函数,作用是比较两个数的大小,保证形参a永远大于形参b,里面正好用了一个地址交换.

那时候做错了,没有任何实际效果.为了完成那个作业,我就迅速重构了一遍,然后把地址交换变成了值交换.

今天上课的时候正好碰到那时候仓促改代码却没有好好思考的问题.也就是地址交换无效的问题.

让我回顾一下当时的遭遇:

1 void swap(int *a, int* b)

2 {

3     //swap函数作为一个数据交换函数,完成a,b两个数的大小比较

4     //如果b>a则交换地址,使之左边恒大于右边

5     if (*a > *b)

6     {

7         int *c = a;

8         a = b;

9         b = c;

10     }

11     //这里完成地址交换

12 }

但是结果却是没有改变,比如传入的变量a=12,b=13.结束之后a仍然等于12,b仍然等于13.

当时因为时间问题,并没有深究,但是现在老师给我们同样的问题,这下就暴露出我什么都不懂了.

下面是老师课堂上的代码.

1 void swap(int *a, int* b)

2 {

3     int* temp=a;

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行