代码一
#include <stdio.h>
char ch1[] = {'a', 'b', 'c'};
char ch2[] = "abc";
int main(void)
{
printf("String ch1 is: %s\n", ch1);
printf("String ch2 is: %s\n", ch2);
return 0;
}
代码二
#include <stdio.h>
int main(void)
char ch1[] = {'a', 'b', 'c'};
char ch2[] = "abc";
{
printf("String ch1 is: %s\n", ch1);
printf("String ch2 is: %s\n", ch2);
return 0;
}
代码一输出的第一行和第二行都是abc,代码二第一行是abc和乱码第二行是abc
请问这是为什么按说ch1没有结束符呀
代码三
scanf("%d",&x); /*此时输入一串数字并回车,变量x将正常接收到输入的整数*/
scanf("%d",&y); /*若此时输入的是字母而不是数字,比如输入“s”并回车*/
/*那么变量y将不会接收到任何字符或数字,其值保持原样,不发生任何改变*/
scanf("%c",&a);
请问代码3中的s为什么会被a接收?输入的是字母而不是数字的话,应该等待用户
代码四
#include <stdio.h>
int main()
{int x,y;
scanf("%d",&x);
scanf("%d",&y);
printf("%d%d",x,y);
return 0;
}
代码四中 如果输入:s 1
为什么两个出来都是乱码?1难道没有被x接受吗?