永发信息网

若有说明int *p,m=5,n;则程序段 p=&n; scanf("%d",*p); 是错误的?请问错在哪?

答案:4  悬赏:80  手机版
解决时间 2021-03-18 15:45
  • 提问者网友:蔚蓝的太阳
  • 2021-03-17 23:40
若有说明int *p,m=5,n;则程序段 p=&n; scanf("%d",*p); 是错误的?请问错在哪?
最佳答案
  • 五星知识达人网友:神鬼未生
  • 2021-03-18 01:09
int *p,m=5,n;//n没初始化,试试int *p,m=5,n=0;
p=&n;
scanf("%d",*p);
全部回答
  • 1楼网友:我住北渡口
  • 2021-03-18 04:07
*p指的是p指向的值,而这里需要的是地址,所以应该是sanf("%d", p);
  • 2楼网友:杯酒困英雄
  • 2021-03-18 03:28
显然是d。scanf后面的参数应该是个地址,也就是p或者是&m,&n之类的。ab错误。c中p没有初始化就直接对其指向空间赋值,也是错的,即不知道会将n写到哪个空间中去。d先将p指向的地址赋值为n的地址,然后对p指向的地址赋值为m,即n=m,正确。
  • 3楼网友:罪歌
  • 2021-03-18 02:09
p现在是保存着n的地址,所以应该 scanf("%d",p);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯