| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 628 人关注过本帖
标题:求助指针指向不确定值问题
只看楼主 加入收藏
duduyey
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-3-26
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
求助指针指向不确定值问题
#include<stdio.h>
 void main( )            
 {
  int a,b;
  scanf("%d%d",&a,&b);
  int *pointer1=&a,*pointer2=&b;
  void swap(int *p1,int *p2);
  swap(pointer1,pointer2);
  printf("%d%d",*pointer1,*pointer2);

 }
 void swap(int *p1,int *p2)
 {
   int *temp;
   *temp=*p1;
   p1=*p2;
   p2=*temp;
 }
此处swap是一个错误的函数 原因是temp指针并无确定的值,有可能是指向一个有用的数据,所以不能对其进行赋值
同理为什么主函数中的pointer1和pointer2就可以赋值能?求解
搜索更多相关主题的帖子: include 
2011-03-26 15:48
安然之风
Rank: 2
等 级:论坛游民
帖 子:43
专家分:23
注 册:2011-1-6
收藏
得分:4 
这个程序是有问题的!问题在于swap函数。
应该为:  
 int temp;
    temp=*p1;
    *p1=*p2;
    *p2=temp;
这样才规范。
2011-03-26 16:24
hy1107648
Rank: 2
等 级:论坛游民
帖 子:80
专家分:40
注 册:2010-2-8
收藏
得分:4 
int *pointer1=&a,*pointer2=&b;的作用是让pointer1指向a,pointer2指向b。这种形式给指针赋的值是地址,这是合法的。
2011-03-26 16:46
duduyey
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-3-26
收藏
得分:0 
回复 3楼 hy1107648
  int * pointer1;
  pointer1=&a;
  也是合法的
  那pointer1也可能指向一个有用的数据啊
2011-03-26 21:14
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:4 
以下是引用安然之风在2011-3-26 16:24:39的发言:

这个程序是有问题的!问题在于swap函数。
应该为:  
 int temp;
    temp=*p1;
    *p1=*p2;
    *p2=temp;
这样才规范。

正确!!!

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-26 21:28
c_panda
Rank: 2
等 级:论坛游民
帖 子:7
专家分:39
注 册:2010-7-21
收藏
得分:4 
你要理解的是赋值给指针变量 和 赋值给指针变量所指向的值 之间的区别
主函数里是前者,就没问题
swap函数里是后者,才有可能发生你所说的问题,只不过当然呢,是可以避免的,方法如下:
void swap(int *p1,int *p2)
{
   int *temp;
   *temp=*p1;
   p1=*p2;
   p2=*temp;
}
你这里把 int *temp; 改为 int *temp = NULL;就没风险了
呵呵,这说明你对指针理解还不太清晰,好好想想
2011-03-26 22:24
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:4 
你的目的是交换两个数的值  却用一个无确定指向的指针所指向的东西     做中间变量

是不是很绕嘴  不过你确实这样做了

                                         
===========深入<----------------->浅出============
2011-03-27 01:08
duduyey
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-3-26
收藏
得分:0 
回复 6楼 c_panda
其实就你理解了我要问的是什么 “赋值给指针变量 和 赋值给指针变量所指向的值 之间的区别”这句话很好
2011-03-27 08:56
快速回复:求助指针指向不确定值问题
数据加载中...
 
   



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

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