有关使用指针做交换函数的问题

richard_ma 2007-01-22 06:45:58
我写了一个函数用来交换x, y的值,传入的是指针
如下
void swap (char *x, char *y) {

char *temp = NULL;
*temp = *x;
*y = *x;
*x = *temp;

}

运行就出错

但是改为
void swap (char *x, char *y) {

char *temp = x;
*y = *x;
*x = *temp;

}
就可以正常运行了,结果也对

不知道是为什么,是不是指针在编译时这两种写法会造成不同的结果呢?

PS:VC6.0环境
...全文
128 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
richard_ma 2007-01-22
  • 打赏
  • 举报
回复
一针见血啊,谢谢了
blackmurder 2007-01-22
  • 打赏
  • 举报
回复
你让temp指向空,*temp就没有意义了!
看来楼主对指针的理解还需要加强啊

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧