一个i++和++i导致的严重的错误
2013-08-20 21:11 youxin 阅读(336) 评论(0) 收藏 举报当我曾经在写一个strlen的实现时,用递归写出了如下的代码:
int strlen(const char *s) { if(*s=='\0') return 0; else return strlen(s++)+1; }
程序一运行就崩溃了,why!都是s++惹的或!原因在于s++,s指针还没有+1时就去调用strlen,如此循环,s指向的始终
是首字符,形成了无穷递归,改成strlen(++s)就好了。
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号