我有以下代码将字符串追加到循环中的另一个。loop是由strcat导致的输出错误?
代码
#include<stdio.h>
#include<string.h>
int main(void){
char src1[] = "name";
int i;
for (i=1;i<=5;i++){
strcat(src1,"opps");
printf("loop times %d\n",i);
}
printf("now src1 is:%s\n",src1);
return 0;
}
要调试的代码,我添加printf
语句代码和编译它。当我跑,我得到以下结果:
输出
循环次数1 循环次数0 循环次数1886416641 现在SRC1是:nameoppsoppsopps
我的问题是:“为什么printf
环1886416641次?“而且,结果也不是我所期待的。有人能为我澄清这件事吗?
您正在写出界限。在这种情况下,你正在覆盖循环计数器。 – EOF
而不是“结果也不是我期待的”,更有用于发布预期内容。 – chux