以你上面的定义,;理论上来说是不可以的,因为你没有给指针分配地址。得到的是随机地址,如果你int *p = NULL 这样得到的是一个0;也就是说是一个空指针。
可以,因为指针也是一个占4字节的整数,表示地址。
这样做很不好,你可以在编译器下试试,这种做法编译器都不允许,更何况咱们自己分析呢,
int x;实在栈区分配的内存,因为这是属于静态区的变量
而int *pa;是动态堆区变量,两个所属区域都不同,赋值肯定是有危险的。
可以将x的地址赋值给pa;
仅此而已
指针也是一个数字,只是用这个数字寻找指定的地址而已
int类型 和指针类型是可以转换的。
只是指针可以通过程序找到相应的内存所在的位置
pa并没有具体的指向,就是没有地址值,这样赋值没有意义。