[問題] if內的判斷
這是考題所以是故意這樣出的
int a;
if( (a=0) >0)
printf("1");
else
printf("0");
簡化之後大概是這樣的問題
我自己用程式跑 如果assign給a的值比0大則if內為true印出1
若給a的值比0小則if內為false印出0
我記得C的部分只要if內回傳結果非0就會是true,回傳0才會是false
系統預設的話若true回傳1 ,false回傳0
我一直以為"="這個assign運算子只要可以執行就是會回傳1(因為成功被assign值了)
但現在看起來卻不是如此
想請教一下這方面的運作到底是如何?
照程式結果看if(1) true , if(0) false , if(-1) true, if(a=1) true ,
if(a=0) false ,if(a=-1) true
看起來如果在if內用assign運算子,assign運算子結束後會傳回被assign得那個值
所以if(a=1)變成if(1) , if(a=0)變成if(0) , if(a=-1)變成if(-1)
因此原程式中變成if(0>0) 請問是這樣嗎?
通篇有沒有哪邊觀念錯誤的?
還煩請指正 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.227.254.239
推
03/06 12:34, , 1F
03/06 12:34, 1F
→
03/06 12:49, , 2F
03/06 12:49, 2F
推
03/06 12:53, , 3F
03/06 12:53, 3F
→
03/06 12:54, , 4F
03/06 12:54, 4F
推
03/06 13:18, , 5F
03/06 13:18, 5F
→
03/06 13:21, , 6F
03/06 13:21, 6F
→
03/06 13:23, , 7F
03/06 13:23, 7F
→
03/06 13:57, , 8F
03/06 13:57, 8F
→
03/06 17:22, , 9F
03/06 17:22, 9F
→
03/06 19:42, , 10F
03/06 19:42, 10F
推
03/13 09:58, , 11F
03/13 09:58, 11F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章