首页 > 用户发贴区 > 编程问题提问区 > 关于指针的问题
2009
06-01

有一程序:

/*交换两个数的值*/

#include <stdio.h>

void swap(int *x,int *y)

{ int *temp;

*temp=*x; /*这里temp 为一定义的整型指针,可是还没被赋

值,也就是说里面没有存放地址,为何可以用此语句?可以的

话,是什么意思呢?*/

*x=*y;

*y=*temp;

}

main()

{ int a=10,b=20;

swap(&a,&b);

printf(“a=%d,b=%d\n”,a,b);

}


关于指针的问题》有 2 条评论

  1. hiroki 说:

    定义指针的时候最好还是赋值  最好赋NULL  这样就安全   在一个那个是 把x的值赋给temp

  2. mhjerry 说:

    这是谭老头书上的经典错误例题呀!

    *temp是指针变量temp所指向的变量,但temp中并无确定的值(它的值是不可预见的),因此temp所指向的单元也是不可预见的。所以,对*temp赋值有可能给一个存储着重要的数据的存储单元赋值,这样就会破环系统的正常工作状况。

留下一个回复