c语言中,一个已定义的指针变量被置空后是如何"记得"它以前所指向的变量的类型的?

如题,比如定义了一个整型的指针p指向整型变量a :
int *p = &a ;
然后将p置空:p = null;
这个时候指针p中所存放的数据即地址已经被清空了,但是再次http://ask.csdn.net/#使用p时还是只能
将其指向整型类型的变量,而不能指向其他类型的变量(比如字符型变量),那么p是
怎么"记得"它在被定义时候的类型的?它的值不是已经被清零了吗?
求大神解答!

它被定义为整型指针后就只能指向整型变量,因为地址的分配模式是不一样的,比如整型指针只有32位可以储存,它就无法指向一个地址长度为64位的变量

只是值清空了,类型并不能改变。就像你定义一个整型变量,不管对它进行了什么操作,它始终只能存在整型常量。

1.你名声是 int 指针,永远是;不会变
2.p = null,只是把地址批和null; 不影响类型;类似于,你把一个硬盘的东西清空了,它还是硬盘,不会变成内存,cpu,它的属性不会变化;