能把一个数赋值给指针变量吗

如题所述

可以,给你个例子

int *p;
p=(int *)1000;

但是注意了!这个指针不能写入数据,这样运行程序不会出错,但是毫无意义。

这个地址是我们杜撰的,因此p是野指针,系统根本没有为我们分配这个地址的内存空间,写入数据很可能会造成程序崩溃,而且是不确定的,一般情况不建议这么做,除非你很明确地址是有效的。因此,编译器是不允许直接赋值常量给的指针的,而必须通过一个变量或者另一个指针变量取得有效地址,以保证指针得到的地址是有效的,因为系统分配的地址每次都不一样的,也就是说你是无法预知的,只能通过已分配的变量获得。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-13
不能。
因为指针变量的值只能是一个地址。