搞清楚循环边界条件,看看其实状态,和最终状态。
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;
}
浙公网安备 33010602011771号