当前位置: 代码迷 >> C语言 >> [求助]最近做题有个问题希望大家帮着解答一下,我认为答案是abc abc
  详细解决方案

[求助]最近做题有个问题希望大家帮着解答一下,我认为答案是abc abc

热度:274   发布时间:2006-03-08 19:59:00.0
[求助]最近做题有个问题希望大家帮着解答一下,我认为答案是abc abc

#include <stdio.h>
main()
[char *p,*q;
p=(char *)malloc(sizeof(char)* 20);q=p;
scanf("%s%s"p,q);
printf("%s %s\n",p,q);
}
若从键盘输入:abc def(回车),则答案为def def.
搜索更多相关的解决方案: abc  解答  

----------------解决方案--------------------------------------------------------
当然是def def,q的值是def,q和p是同一个内存空间,所以是2个def
----------------解决方案--------------------------------------------------------
以下是引用谢芳在2006-3-8 19:59:00的发言:

#include <stdio.h>
main()
[char *p,*q;
p=(char *)malloc(sizeof(char)* 20);q=p;
scanf("%s%s"p,q);
printf("%s %s\n",p,q);
}
若从键盘输入:abc def(回车),则答案为def def.

main()函数后错误


----------------解决方案--------------------------------------------------------
   p和 q指向同一段内存存储单元,他们的值都是malloc函数开辟的一段内存的首地址,先输入 "abc",然后从q的地址又输入了"def",实际上是把前八个字节的单元重新写了一次,简单点就是def把abc覆盖了
----------------解决方案--------------------------------------------------------

def覆盖了abc啊


----------------解决方案--------------------------------------------------------
以下是引用谢芳在2006-3-8 19:59:00的发言:

#include <stdio.h>
main()
[char *p,*q;
p=(char *)malloc(sizeof(char)* 20);q=p;
scanf("%s%s",p,q);
printf("%s %s\n",p,q);
}
若从键盘输入:abc def(回车),则答案为def def.


----------------解决方案--------------------------------------------------------
main()后面应该是{ 而不是[
要注意了。
----------------解决方案--------------------------------------------------------

楼主的输入语句输错了
虽然少了一个空格,但是这足够叫高手把错误的结果告诉你!


----------------解决方案--------------------------------------------------------
4楼说的有道理
----------------解决方案--------------------------------------------------------
  你们这些人当中有没有过了计算机二级C语言的?这种题都还反复不断的说就好象在证明一下自己一样,怕哪个不知道你是一个高手所,多去帮另外的人解决一些更难的题嘛。
----------------解决方案--------------------------------------------------------
  相关解决方案