| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1571 人关注过本帖
标题:指针变量赋初值疑问
取消只看楼主 加入收藏
南国迦叶
Rank: 2
等 级:论坛游民
帖 子:46
专家分:20
注 册:2010-7-9
结帖率:88.24%
收藏
已结贴  问题点数:4 回复次数:0 
指针变量赋初值疑问
#include<stdio.h>
 int swap(int *p1,int *p2)
 {
     int *p;        /*第4行*/           
     p=p1;          /*第5行*/   
     p1=p2;         /*第6行*/        
     p2=p;          /*第7行*/   
 }
 main()
 {   
     int *t1,*t2,a,b;
     scanf("%d,%d",&a,&b);
     getchar();
     t1=&a;
     t2=&b;
     if (a<b)
     {
         swap(t1,t2);
     }
     printf("a=%d,b=%d\n",a,b);
     getchar();
 }
疑问:对于程序中所示的第4到第7行,教材上讲如果改成*p=*p1;*p1=*p2;*p2=*p;就会报错,说是指针变量p没有确定的地址,它的值是不可预见的,因而*p指向的单元也是不可预见的,对*p赋值可能会破坏系统的正常工作状态。我试了下,确实如此。为什么示例中同样是先定义*p也没有给p赋初值,而运行不会报错呢,难道是由于其后的三个不一样的赋值语句造成的。不明白!(这里定义p为指针变量不也是没有确定的地址吗)???
搜索更多相关主题的帖子: include 
2012-11-21 21:51
快速回复:指针变量赋初值疑问
数据加载中...
 
   



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

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