把程序中的printf FOO注释掉之后,输出是status:0,如果不注释,那么输出是status:4。
请问为什么没有修改任何变量的printf语句把isValid返回的假变为了真?
把具体打印的"FOO"字符串变长,返回值变成了9,更无法理解了
bool isValid(char* s) // "{[()(){}]}"
{
if (*s == *(s + 1))
return true;
else if (*(s + 1) == '{' || *(s + 1) == '(' || *(s + 1) == '[')
{
isValid(s + 1);
//printf("FOO\n");
}
else
return false;
}
int main(void)
{
char ch[] = "{[()(){}]}";
char* s = ch;
printf("status:%d", isValid(s));
return 0;
}