注册 登录
编程论坛 数据结构与算法

关于指针的一些事

dingzy2010 发布于 2012-04-16 12:23, 492 次点击
void main()
{
   int *p,*q,i=8;
   p=&i;
   *q=*p;
   cout<<*q<<endl;
}
是出不来结果的。。。。
为什么呢???
还有int *ptr;


*ptr=7;
有什么不妥之处吗????
4 回复
#2
寒风中的细雨2012-04-16 12:39
赋值是否正确

*q  在上面就是不妥之举    因为它的指向不明   因此是不应该对其指向的内存进行操作的

解决的方式是,  分配可用的地址空间给它,  或者让它指向一个有效的内存空间  就像是 p = &i;  
#3
寒风中的细雨2012-04-16 12:41
int  *ptr = 7;//error


int *ptr;
*ptr = 7;


第一种是类型问题

第二种是地址可访问性问题
#4
dingzy20102012-04-16 13:16
回复 3楼 寒风中的细雨
是由于指针str没有初始化吧。。。。
#5
dingzy20102012-04-16 13:18
以下是引用寒风中的细雨在2012-4-16 12:41:31的发言:

int  *ptr = 7;//error


int *ptr;
*ptr = 7;


第一种是类型问题

第二种是地址可访问性问题
  指针ptr没有指向,处于游离状态。。。。。
int *ptr,i=6;
ptr=&i;
*ptr=7;
可以运行
1