| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 259 人关注过本帖
标题:新手教学-指针数据交换
收藏  订阅  推荐  打印 
raymond1010
Rank: 2
等级:注册会员
帖子:43
积分:566
注册:2008-8-9
新手教学-指针数据交换

同学们可以运行一下程序,结合指针的概念思考一下结果为何不同
程序代码:
#include <stdio.h>

void changevalue(int *,int *);/*交换值*/
void changeaddress(int *,int *);/*交换地址*/

int main(void)
{
int *p,*q,a=1,b=2;
p=&a;q=&b;
printf("before changed: *p=%d,*q=%d,&p=%d,&q=%d",*p,*q,p,q);
printf("\nchange value:\n");
changevalue(p,q);
printf("\nafter changed: *p=%d,*q=%d,&p=%d,&q=%d",*p,*q,p,q);
a=1;b=2;/*重置a,b,p,q的值*/
p=&a;q=&b;
printf("\n\nbefore changed: *p=%d,*q=%d,&p=%d,&q=%d",*p,*q,p,q);
printf("\nchange address:\n");
changeaddress(p,q);
printf("\n\nbefore changed: *p=%d,*q=%d,&p=%d,&q=%d",*p,*q,p,q);
return 0;
}

void changevalue(int *x, int *y)
{
int z;
z=*x;*x=*y;*y=z;
printf("inside(changevalue): x=%d,y=%d,&x=%d,&y=%d",*x,*y,x,y);
}

void changeaddress(int *x, int *y)
{
int *z;
z=x;x=y;y=z;
printf("inside(changeaddress): x=%d,y=%d,&x=%d,&y=%d",*x,*y,x,y);
}
搜索更多相关主题的帖子: 指针  int  数据交换  void  
2008-8-11 18:10
woshiyun
Rank: 3Rank: 3
等级:中级会员
帖子:172
积分:2398
注册:2008-6-16

谁是老师?谁是同学?
2008-8-11 19:22
raymond1010
Rank: 2
等级:注册会员
帖子:43
积分:566
注册:2008-8-9

现在我是老师
哈哈
2008-8-11 19:27
woshiyun
Rank: 3Rank: 3
等级:中级会员
帖子:172
积分:2398
注册:2008-6-16


那贴点有质量的程序吧。
哪怕是把你这个格式排排好,有点缩进也行啊。。。。
2008-8-11 19:29
raymond1010
Rank: 2
等级:注册会员
帖子:43
积分:566
注册:2008-8-9

我在论坛上现写的,没用IDE写。。。也不容易的我。。。
2008-8-11 19:45
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.056768 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved