[問題] 呼叫函式產生一個回傳值 充當條件運算式

看板C_and_CPP作者時間14年前 (2009/08/28 10:57), 編輯推噓4(408)
留言12則, 5人參與, 最新討論串1/2 (看更多)
有關於 呼叫函式產生一個回傳值 把這個回傳值充當作條件運算式 想請問 上面兩行的是在說 如果回傳值為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

08/28 10:59, , 1F
你if那邊加了; 拿掉吧
08/28 10:59, 1F

08/28 11:01, , 2F
而且printf 回傳的是他印了多少個char 只要>0都會是true
08/28 11:01, 2F

08/28 11:01, , 3F
所以A就一定會印
08/28 11:01, 3F

08/28 11:03, , 4F
B也是一定會被印的啊....Orz
08/28 11:03, 4F

08/28 11:08, , 5F
可以請問一下為什麼 B 也會被輸出嗎? |||
08/28 11:08, 5F

08/28 11:09, , 6F
如果if 成立 為什麼會執行到輸出B呢@ @|||
08/28 11:09, 6F

08/28 11:13, , 7F
cout <<"B"<<endl;上面多加一行空白,你就知道了
08/28 11:13, 7F

08/28 11:15, , 8F
結果B還是有被輸出阿@ @
08/28 11:15, 8F

08/28 11:22, , 9F
小弟覺得, 您應該去把if/else還有C/C++基本語法看清楚.
08/28 11:22, 9F

08/28 11:23, , 10F
B那邊沒有被任何if/else{}給括到/單行接到, 就只是一條
08/28 11:23, 10F

08/28 11:24, , 11F
單獨的指令, 跟下面PAUSE一樣, 當然一定會被執行到.
08/28 11:24, 11F

08/28 13:20, , 12F
妳的B那部分並沒有任何條件限制,當然永遠都會執行到它
08/28 13:20, 12F
文章代碼(AID): #1AbqUMUe (C_and_CPP)
文章代碼(AID): #1AbqUMUe (C_and_CPP)