| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3206 人关注过本帖
标题:指针是伟大的!
只看楼主 加入收藏
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
结帖率:72.73%
收藏
 问题点数:0 回复次数:42 
指针是伟大的!
最近又拿起了C语言,再次复习了指针,忍不住称其“伟大”!

下面是我实现数值的交换的方法:

void xchange(int a,int b)
{
 *(int *)a=*(int *)a +*(int *)b;
 *(int *)b=*(int *)a-*(int *)b;
 *(int *)a=*(int *)a-*(int *)b;

}
void main()
{
 int a=10,b=20;
 xchange(&a,&b);
 printf("a=%d,b=%d\n",a,b);
}


你能接受吗?
搜索更多相关主题的帖子: 指针 
2007-12-06 22:35
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
收藏
得分:0 
好麻烦呀

麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2007-12-06 22:39
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
收藏
得分:0 
有意思吗?

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2007-12-06 22:43
rayxiang
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2007-10-22
收藏
得分:0 
指针有的时候真的很有用..............................

...........没 有 音 乐 就 没 法 活............ ...........不 会C 语 言 我 可 以 问...........
2007-12-06 23:04
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
收藏
得分:0 
*(int *)a=*(int *)a +*(int *)b;
*(int *)b=*(int *)a-*(int *)b;
*(int *)a=*(int *)a-*(int *)b;

这样卫冕太罗嗦了吧

麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2007-12-06 23:07
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
void xchange(int a,int b)
{
*(int *)a=*(int *)a +*(int *)b;
*(int *)b=*(int *)a-*(int *)b;
*(int *)a=*(int *)a-*(int *)b;
}


把a 强制转换为 (int *) 然后再取值。

完全不正确!

//------------------------------------
a = a + b;
b = a - b;
a = a - b;

—>〉Sun〈<—
2007-12-06 23:10
布拉莫斯
Rank: 1
来 自:中国太平洋舰队
等 级:新手上路
帖 子:169
专家分:0
注 册:2007-3-31
收藏
得分:0 
滥用就不太好了。。。。。。。。

真理往往掌握在少数人手中,可现实却是少数服从多数!
2007-12-06 23:15
yangzhifu
Rank: 1
等 级:新手上路
威 望:2
帖 子:433
专家分:0
注 册:2007-4-11
收藏
得分:0 
学习了.先取地址,再取其内的值

方寸之内,剖天下; 方坛之内,析自我;
2007-12-06 23:17
yangzhifu
Rank: 1
等 级:新手上路
威 望:2
帖 子:433
专家分:0
注 册:2007-4-11
收藏
得分:0 
学习了.先取地址,再取其内的值

方寸之内,剖天下; 方坛之内,析自我;
2007-12-06 23:17
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
学个屁!

void xchange(int a,int b)  这鸟函数接受的是 int 类型

xchange(&a,&b);      它调用的时候给的是地址


//-------------------------------------------------
别学楼主的样,函数要像下面这样。

void xchange(int * a, int * b)
{

    *a = *a + *b;
    *b = *a - *b;
    *a = *a - *a;
}


[[italic] 本帖最后由 cosdos 于 2007-12-6 23:33 编辑 [/italic]]

—>〉Sun〈<—
2007-12-06 23:27
快速回复:指针是伟大的!
数据加载中...
 
   



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

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