花仙子头像图片:C语言问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 09:18:30
#include "stdlib.h"
main()
{char *p,*q;
p=(char*)malloc(sizeof(char)*20);
q=p;
scanf("%s %s",p,q);
printf("%s %s",*(p+3));
}
若从键盘上输入abcd ef,输出结果为什么不是d呢?

printf("%s %s",*(p+3));这个里面少了一个参数,当然你的本意是输出第四个字符d,但你使用%S,这个就会直接输出串,以遇到\0时结束,所以需要改一下成为:
printf("%c",*(p+3));你再试试看。

printf里面两个%s?

q=p;
scanf("%s %s",p,q);
你先对p的内存区域付值,又对q的内存区域付值
你对q操作就是对p操作,应该输出是h