[問題] if 內 "=" 的問題
各位前輩好,小弟昨日面試時碰到了個問題不了解為什麼,煩請各位前輩指點迷津了。
題目:
int x=0;
if(x=0 || x==0){
printf("%d\n",x);
}
printf("%d\n",x);
請問上面的結果為何?
小弟寫 0 ,0。
但是覺得怪怪的因此使用了dev c++(在windows)與gcc(在red hat linux)去跑,
得到的答案都是 1 ,1。
不太懂為甚麼 if中x=0再加上 || x==0後,x就變成1了。
若只跑 if(x=0),則結果會符合小弟所認知的答案,只印出一個0。用if(x==0)則答案
會是0 ,0。
以上問題,還請各位前輩協助了,感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 119.14.49.202
※ 編輯: nanosheep 來自: 119.14.49.202 (02/27 20:43)
推
02/27 20:43, , 1F
02/27 20:43, 1F
→
02/27 20:49, , 2F
02/27 20:49, 2F
→
02/27 20:50, , 3F
02/27 20:50, 3F
→
02/27 20:50, , 4F
02/27 20:50, 4F
推
02/27 21:05, , 5F
02/27 21:05, 5F
推
02/27 21:06, , 6F
02/27 21:06, 6F
→
02/27 21:06, , 7F
02/27 21:06, 7F
→
02/27 21:07, , 8F
02/27 21:07, 8F
→
02/27 21:08, , 9F
02/27 21:08, 9F
→
02/27 21:09, , 10F
02/27 21:09, 10F
→
02/27 21:17, , 11F
02/27 21:17, 11F
推
02/27 21:28, , 12F
02/27 21:28, 12F
感謝各位前輩的解答,小弟懂了。學藝不精忽略了"="與"||"的優先權關係...
然後剛剛printf("%d\n",x=(0||x==0)); 得到0是因為小弟把它寫再原題目後面,所以
x=1再去跑printf("%d\n",x=(0||x==0)); 時就得到0了。這點小弟忽略的抱歉。
再次感謝各位前輩的指點。
※ 編輯: nanosheep 來自: 119.14.49.202 (02/27 21:35)
推
02/27 22:13, , 13F
02/27 22:13, 13F
推
02/27 22:27, , 14F
02/27 22:27, 14F
推
02/27 23:12, , 15F
02/27 23:12, 15F
→
02/27 23:13, , 16F
02/27 23:13, 16F
→
02/27 23:14, , 17F
02/27 23:14, 17F
→
02/27 23:36, , 18F
02/27 23:36, 18F
→
02/28 00:19, , 19F
02/28 00:19, 19F
→
02/28 00:20, , 20F
02/28 00:20, 20F
→
02/28 00:23, , 21F
02/28 00:23, 21F
→
02/28 00:24, , 22F
02/28 00:24, 22F
→
02/28 01:11, , 23F
02/28 01:11, 23F
推
02/28 08:04, , 24F
02/28 08:04, 24F
推
02/28 11:29, , 25F
02/28 11:29, 25F
→
02/28 11:45, , 26F
02/28 11:45, 26F
→
02/28 11:46, , 27F
02/28 11:46, 27F
→
02/28 11:48, , 28F
02/28 11:48, 28F
→
02/28 11:50, , 29F
02/28 11:50, 29F
推
02/28 11:52, , 30F
02/28 11:52, 30F
→
02/28 11:52, , 31F
02/28 11:52, 31F
→
02/28 11:53, , 32F
02/28 11:53, 32F
→
02/28 11:53, , 33F
02/28 11:53, 33F
→
02/28 13:01, , 34F
02/28 13:01, 34F
→
02/28 14:23, , 35F
02/28 14:23, 35F
→
02/28 16:00, , 36F
02/28 16:00, 36F
→
02/28 16:07, , 37F
02/28 16:07, 37F
→
02/28 16:08, , 38F
02/28 16:08, 38F
→
02/28 16:09, , 39F
02/28 16:09, 39F
→
02/28 16:48, , 40F
02/28 16:48, 40F
推
02/28 20:00, , 41F
02/28 20:00, 41F
→
02/28 23:02, , 42F
02/28 23:02, 42F
→
02/28 23:02, , 43F
02/28 23:02, 43F
推
03/01 09:45, , 44F
03/01 09:45, 44F
推
03/01 21:15, , 45F
03/01 21:15, 45F
→
03/01 21:16, , 46F
03/01 21:16, 46F
推
03/02 00:52, , 47F
03/02 00:52, 47F
→
03/02 00:53, , 48F
03/02 00:53, 48F
→
03/02 04:20, , 49F
03/02 04:20, 49F
→
03/02 04:22, , 50F
03/02 04:22, 50F
→
03/03 11:39, , 51F
03/03 11:39, 51F
推
03/04 00:02, , 52F
03/04 00:02, 52F
→
03/04 00:02, , 53F
03/04 00:02, 53F
→
03/05 00:01, , 54F
03/05 00:01, 54F
→
03/05 00:04, , 55F
03/05 00:04, 55F
推
03/05 13:15, , 56F
03/05 13:15, 56F
→
03/05 13:47, , 57F
03/05 13:47, 57F
→
03/05 14:33, , 58F
03/05 14:33, 58F