展开全部
答案A 错误纠正
int p;
scanf("%d",&p);
--------------------------------
int *p,a;
p=&a;
scanf("%d",p);
--------------------------------------
以上两种都可以。
分析:编译器不会对“局部变量” 初始化,全局变量 会默认被初始化为0.
答案A 在使用指针变量P之前没有对其初始化,不能使用。
2. 答案B 错误纠正
int *s,k;
s=&k;
*s=100;
通A,都是指针在使用前没有初始化。
3.答案C 正确
4. 答案D 错误
s=p;是错误的
因为s是 一个整型数指针,而p是字符型指针。指针类型不同的两个变量不能赋值。
======================================================
希望我的回答对你有所帮助,很高兴和你一起学习和讨论C语言编程。
展开全部
ABD有错误。D的错误为:int为4字节(一般),char为1字节,如果直接赋值,会导致3字节之后的内存空间被访问
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2021-02-28
展开全部
A、B的指针都是空指针,D在c++中是不可能隐式转换的,会报错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CD都没问题,AB都是指针没有分配内存就使用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询