[問題] : ? return

看板C_and_CPP作者 (奇怪 還沒收到??)時間15年前 (2010/06/04 14:41), 編輯推噓3(3016)
留言19則, 6人參與, 最新討論串1/1
一個小問題 但是不太好查 因為我不知道 : ? 的關鍵字叫甚麼... 請問各位 為什麼這樣不行~ (3 > 2) ? return 1; : return 0; 哪出了錯阿? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.104.55

06/04 22:43, , 1F
return (3>2)?1:0; 這樣??
06/04 22:43, 1F

06/04 22:44, , 2F
?條件運算子
06/04 22:44, 2F

06/04 22:47, , 3F
因為這不是真正的if-else,你把式子左邊加上=就知到不
06/04 22:47, 3F

06/04 22:47, , 4F
傑利成立了
06/04 22:47, 4F

06/04 22:47, , 5F
^^^^多打
06/04 22:47, 5F

06/04 22:47, , 6F
多一個問題.
06/04 22:47, 6F

06/04 22:48, , 7F
#define MAX(i,j) return (i >j) ? i : j ;
06/04 22:48, 7F

06/04 22:49, , 8F
result= MAX(2,3); 有沒有; 都不行 = =|
06/04 22:49, 8F

06/04 22:50, , 9F
不用return....
06/04 22:50, 9F

06/04 22:52, , 10F
真的... 為什麼阿... 是因為? : 已經有return 之意了嗎?
06/04 22:52, 10F

06/04 22:52, , 11F
另外這個叫ternary operator
06/04 22:52, 11F

06/04 22:53, , 12F
你把MAX()代換成return (i >j)?i:j; 就知道錯在哪了
06/04 22:53, 12F

06/04 22:55, , 13F
對ya 不過請問love他是已經有return在裡面所以不用return
06/04 22:55, 13F

06/04 23:00, , 14F
I got it. Thank u for giving me the key work.
06/04 23:00, 14F

06/04 23:27, , 15F
少用邪惡的 macro, 請改用 inline function
06/04 23:27, 15F

06/05 00:46, , 16F
printf("%d",(1>2)?1:2);
06/05 00:46, 16F

06/05 06:13, , 17F
這個叫 conditional operator。ternary operator 的中文叫
06/05 06:13, 17F

06/05 06:14, , 18F
三元運算子,是對有三個運算元的運算子的通稱。
06/05 06:14, 18F

06/05 06:15, , 19F
C/C++ 的三元運算子就只有這個,所以常被混著講。
06/05 06:15, 19F
文章代碼(AID): #1C2H1_aC (C_and_CPP)