求助一道c语言题目?

第一个函数main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,1);printf("... 第一个函数 main()
{
char *p,*q;
p=(char *)malloc(sizeof(char)*20);q=p;
scanf("%s %s",p,1);
printf("%s %s",p,1);
}//此函数从键盘输出abc def得出的结果为def def
第二个函数
int main()
{
int a,b;
b=a;
scanf("%d %d",a,b);
printf("%d %d\n",a,b);

}//此函数运行不出来 原理不都是后一个输入的覆盖前一个输入的吗
展开
 我来答
yzjxbin76
2019-11-10 · TA获得超过123个赞
知道小有建树答主
回答量:251
采纳率:67%
帮助的人:63万
展开全部
第一个p,q是指针变量,且保存相同的地址,设置为指向同一块内存。p,q始终输出同样的内容。第二个变量a,b占据不同的内存。变量的赋值是值拷贝到目标变量中。
更多追问追答
追问
第二个用b=a这样赋值可以吗行得通吗
本来a和b都没赋值 然后b=a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
三天打鱼N
2019-11-10 · TA获得超过1540个赞
知道大有可为答主
回答量:2032
采纳率:74%
帮助的人:586万
展开全部
第二个 那个是值类变量 不是指针类型 你这样赋值没有用 你去学学指针吧
下面的输入要传指针 应该scanf("%d %d",&a,b)
追答
输入要传指针 应该scanf("%d %d",&a,&b)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
路过者天蝎96
2019-11-09 · TA获得超过3743个赞
知道大有可为答主
回答量:3573
采纳率:79%
帮助的人:2435万
展开全部
运行不出来是因为你没初始化就用了a

就算能运行,也不能实现第一个效果
第一个你把p=(char *)malloc(sizeof(char)*20);删了照样运行不了
更多追问追答
追问
是因为指针的问题吗
指纹可以运行这样的效果 整型就不可以吗
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式