1 是错误的,不能将 int 赋值给 int *2 是正确的,因为 &a 的类型为 int *,正是 q 的类型;3 理论上正确,实际中不妥,因为 q 指向受保护内存区,此时对 q 解引用并赋值,程序会崩掉;4 是错误的,道理和 3 同理;
1.q = a; // 类型不同,会给出编译警告2.q = &a;// 指针p指向a的存储地址,正常用法3.*q = a;// 有问题,a的值放哪儿呢?4.*q = &a;// 有问题,a的地址放哪儿呢?