我认为,那个题的错误应在于:
int *p1 开始是int 型的,令之指向i,这是没错的.
不过一旦语句:p2=(float *)p1这就出问题了.
因为:这句就等价于:
float *p1;
p1=p2;
那是当然错了.
请记住:指针是没有强制转换的!!!!!!!!!!!!!!!!!
-------------------------------------------------------------------------------------
那么,你的意思是说,我们使用的动态存储分配函数malloc()返回的指针类型无法转换了?可是,我们一直在用啊!
int *p1;
p1=(int *)malloc(sizeof(int));
这是错的吗?
int *p1 开始是int 型的,令之指向i,这是没错的.
不过一旦语句:p2=(float *)p1这就出问题了.
因为:这句就等价于:
float *p1;
p1=p2;
那是当然错了.
请记住:指针是没有强制转换的!!!!!!!!!!!!!!!!!
-------------------------------------------------------------------------------------
那么,你的意思是说,我们使用的动态存储分配函数malloc()返回的指针类型无法转换了?可是,我们一直在用啊!
int *p1;
p1=(int *)malloc(sizeof(int));
这是错的吗?