搞清楚循环边界条件,看看其实状态,和最终状态。

void main()
{  
    char str1[]="abcdefcdsdfascscsdfcd",str2[]="cd";
    //一定要搞清楚循环体的开始状态,和结束状态,来判断边界条件
    int i;
    //++i判断的是当前指针的后一个,结束循环的时候指向的是‘a’本身。而且如果,str第一个是‘a’,无法判断,因为其实的i=0,str1[i++]判断不了i=0的状态;(++i:i=i+1;返回+1后的)
    for(i = 0; str1[++i] != 'a'; )
    ;
    //i++判断的是当前的指针是否是'a',不过结束循环的时候指向的是'a'的下一个,str[0]可以判断。(i++: i = i+1;返回+1前的)
    for(i = 0; str1[i++] != 'a'; )
        ;
    cout << i << endl;
    cout << PI << endl;
}

posted @ 2012-03-11 12:07  springbarley  阅读(873)  评论(0)    收藏  举报