我有一個char指針在程序開始時初始化爲NULL,在程序中進一步發現char *用於函數調用,它可能指向一個char字符串,它可能指向空字符,並且它可能保持不變。 所以下面的陳述是正確的,應該是如果從左到右評估表達式。如果沒有,那麼的strlen(charpointer)是不確定的行爲,如果charpointer == NULL如果(...)中的if語句的語句評估順序是什麼?
if ( charpointer == NULL || strlen (charpointer) == 0 )
那麼,他們究竟是怎麼從從左到右進行評估?這是正確的方式去檢查像這樣?
我確定這是一個重複很多次。 「||」的操作數需要從左到右進行求值,使表達式安全(只要「charpointer」是空指針或指向字符串的有效指針)。對於大多數其他運營商而言,評估的順序是未指定的。 –
請注意,評估順序與表達式用作if語句中的條件無關;它完全關於'||'運算符。 –