我有这两个 c 编程代码。除了一步之外它们是相同的,因此它们的输出完全不同,请帮助我为什么会发生这种情况
main()
{
char ch[10]="123456";
char *p;
int a;
scanf("%d",&a);
p=ch+a;
*p='0';
printf("%s",ch);
}
output is
nik@debian:~$ ./a.out
4
123406
并且这里是另一个在 [*p='0'] 行只有轻微变化
main()
{
char ch[10]="123456";
char *p;
int a;
scanf("%d",&a);
p=ch+a;
*p=0; //only change is here rest is same
printf("%s",ch);
}
and output is
nik@debian:~$ ./a.out
4
1234
请帮我解释一下为什么它是不同的,因为我在 printf 中使用 %s 或其他我一直缺少的东西