在for循环中,第二部分,即在第一个分号之后,我们进行条件检查(比如我小于n)。如果我们删除条件部分一般它会进入一个无限循环,但是这里它显示了一个运行时错误,如果我们只是编写exp []而没有索引i它会给出一个编译器错误,那么exp [i]这里是什么以及如何条件检查是否正在进行?
int infixToPostfix(char* exp)
{
int i,k;
for (i = 0, k = -1; exp[i]; ++i)
....
....
}
int main()
{
char exp[] = "a+b*(c^d-e)^(f+g*h)-i";
infixToPostfix(exp);
return 0;
}
答案 0 :(得分:0)
考虑到没有访问权限违规,exp
是char
指针,exp[i]
是i+i
char
元素的值。
接下来,exp[i]
的值用于条件检查。 ,0
代表 false ,non-zero
代表 true 。