| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1824 人关注过本帖
标题:神奇的函数值交换函数
取消只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
 问题点数:0 回复次数:5 
神奇的函数值交换函数
#include <iostream>
using namespace std;

void change(int a[])
{
    a[0] += a[1];
    a[1] = a[0]-a[1];
    a[0] -= a[1];
}

int main()
{

    int x=4,y=5;

    cout  << x <<"\t"<< y<<endl;

    change(&y);

    cout  << x <<"\t"<< y<<endl;

    return 0;
}
在VC6 的debug 模式下编译后运行能 交换x,y的值(release 模式下不正确)

神奇.JPG (27.61 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 交换 数组 debug 模式 神奇 
2008-10-25 23:01
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
原理
x,y的定义是相连的,则他们的地址也是相连的
因此可以把他们看成是一个数组的两个元素

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008-10-25 23:07
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
回复 3# 沼泽 的帖子
用的VC6

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008-10-26 11:06
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
回复 6# gongqivictor 的帖子
<程序员求职应聘必读 >p35 这样解释的

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008-10-27 00:42
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
release 版本出现问题(VC6.0)
但是我使用release 版本出现问题
没有正确的交换

result.JPG (18.5 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008-10-29 03:01
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
哇,果然他们的地址是紧紧相连的
并且确实按照如此顺序,即:(上边是低地址,下边是高地址)
y
x
argc
argv

连续地址.JPG (29.35 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008-10-29 03:23
快速回复:神奇的函数值交换函数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016869 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved