有两个问题:1 temp没有初始化,对于未初始化的临时变量,值是不确定了。考虑下面的情况str=“123”;此时temp=i;的语句不会被执行,也就是temp的值是不确定的,可能很大,那么15行就会报错
2 考虑下面的情况:str="321";这种情况下temp=2;程序运行到15行时,str[i+1]会将 str末尾的’\0‘ 覆盖,是一个潜在的风险。这样会导致下面的语句报错:printf("%s\n",str);