当前位置: 代码迷 >> C语言 >> 指针是伟大的!
  详细解决方案

指针是伟大的!

热度:42   发布时间:2007-12-06 22:35:32.0
指针是伟大的!
最近又拿起了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);
}


你能接受吗?
搜索更多相关的解决方案: 指针  

----------------解决方案--------------------------------------------------------
好麻烦呀
----------------解决方案--------------------------------------------------------
有意思吗?
----------------解决方案--------------------------------------------------------
指针有的时候真的很有用..............................
----------------解决方案--------------------------------------------------------
*(int *)a=*(int *)a +*(int *)b;
*(int *)b=*(int *)a-*(int *)b;
*(int *)a=*(int *)a-*(int *)b;

这样卫冕太罗嗦了吧
----------------解决方案--------------------------------------------------------
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;
----------------解决方案--------------------------------------------------------
滥用就不太好了。。。。。。。。
----------------解决方案--------------------------------------------------------
学习了.先取地址,再取其内的值
----------------解决方案--------------------------------------------------------
学习了.先取地址,再取其内的值
----------------解决方案--------------------------------------------------------
学个屁!

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]]
----------------解决方案--------------------------------------------------------
  相关解决方案