-1
在for循環的第二部分,即第一個分號後,我們做條件檢查(比如說我小於n)。如果我們通常刪除條件部分,它會進入無限循環,但在這裏它顯示運行時錯誤,並且如果我們只是寫入沒有索引i的exp [],它會給出編譯器錯誤,那麼exp [i]在這裏和怎樣檢查是否正在進行?條件檢查inFor循環
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;
}
因此exp [i]計算爲0或非零。那麼你是指a,+,並且所有運算符和操作數都是非零的,因此它運行。我們主要將exp傳遞給infixToPostfix,並且當我們傳遞值的時候'\ o'字符被附加到它上面,這就是當它到達結尾時它終止的原因嗎? – Stack
@stack正確。空終止符ascii值爲0. –
所以基本上我們比較所有字符的ASCII值,或者因爲它們是字符,我們不會將它們轉換爲ASCII,我們只對\ 0做它?我的意思是說,如果我傳遞一個整數說a + b * 2或其他的東西,然後2將被轉換爲ascii,然後將檢查條件? – Stack