能把一个数赋值给指针变量吗
答案:2 悬赏:20
解决时间 2021-03-22 08:16
- 提问者网友:心裂
- 2021-03-21 19:26
能把一个数赋值给指针变量吗
最佳答案
- 二级知识专家网友:啵啵桃汀
- 2021-03-21 19:52
int *p1,*p2;
int i=1,j=2;
p1=&i; p2=&j ;
*p1=*p2 ; //此时的*p1就是i *p2就是j
改变的是:p1所指向的地址中的值!
如果修改p1的地址,则应该是:p1=p2 ;
PS: *是引用地址数据运算符,其后只能跟指针变量,表示引用地址中的数据
int i=1,j=2;
p1=&i; p2=&j ;
*p1=*p2 ; //此时的*p1就是i *p2就是j
改变的是:p1所指向的地址中的值!
如果修改p1的地址,则应该是:p1=p2 ;
PS: *是引用地址数据运算符,其后只能跟指针变量,表示引用地址中的数据
全部回答
- 1楼网友:我的任性你不懂
- 2021-03-21 20:56
可以,给你个例子
int *p;
p=(int *)1000;但是注意了!这个指针不能写入数据,这样运行程序不会出错,但是毫无意义。
这个地址是我们杜撰的,因此p是野指针,系统根本没有为我们分配这个地址的内存空间,写入数据很可能会造成程序崩溃,而且是不确定的,一般情况不建议这么做,除非你很明确地址是有效的。因此,编译器是不允许直接赋值常量给的指针的,而必须通过一个变量或者另一个指针变量取得有效地址,以保证指针得到的地址是有效的,因为系统分配的地址每次都不一样的,也就是说你是无法预知的,只能通过已分配的变量获得。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯