看板 C_and_CPP 關於我們 聯絡資訊
有關於 呼叫函式產生一個回傳值 把這個回傳值充當作條件運算式 想請問 上面兩行的是在說 如果回傳值為0 則當作條件運算式成立 如果回傳值非0 則當作條件運算式不成立 的這個意思嗎 如果是的話 想再請問一下 那為什麼 底下我寫的式子 跑的結果是 A 跟B 都被輸出呢@ @ #include <iostream> #include <stdlib.h> using namespace std; int main(void) { if(printf("XYZ\n")); cout << "A" << endl ; cout << "B" <<endl ; system("pause"); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.143.103
QQ29:你if那邊加了; 拿掉吧 08/28 10:59
QQ29:而且printf 回傳的是他印了多少個char 只要>0都會是true 08/28 11:01
QQ29:所以A就一定會印 08/28 11:01
VictorTom:B也是一定會被印的啊....Orz 08/28 11:03
bookticket:可以請問一下為什麼 B 也會被輸出嗎? ||| 08/28 11:08
bookticket:如果if 成立 為什麼會執行到輸出B呢@ @||| 08/28 11:09
fsyoung:cout <<"B"<<endl;上面多加一行空白,你就知道了 08/28 11:13
bookticket:結果B還是有被輸出阿@ @ 08/28 11:15
VictorTom:小弟覺得, 您應該去把if/else還有C/C++基本語法看清楚. 08/28 11:22
VictorTom:B那邊沒有被任何if/else{}給括到/單行接到, 就只是一條 08/28 11:23
VictorTom:單獨的指令, 跟下面PAUSE一樣, 當然一定會被執行到. 08/28 11:24
Peruheru:妳的B那部分並沒有任何條件限制,當然永遠都會執行到它 08/28 13:20