作者lgs ()
看板C_and_CPP
標題[問題] 一個困惑的小問題
時間Mon Dec 14 20:08:16 2009
在 Dev C++ 4.9.9.2 版下
void main(void)
{
unsigned char var = 255;
if (~var)
{
var = ~var;
printf("value = %d",var);
}
system("pause");
}
why 印出的是 0 可是 if 判斷會進去執行 @ @
void main(void)
{
unsigned char var = 255;
if ( (var=0) )
{
printf("value = %d\n",var);
}
system("pause");
}
不會進去if判斷式,不過get運算的return value 不是應該要為true嗎 @ @
先感謝好心人的回答 ~~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.124.186.194
1F:推 chchwy:var值為零 所以false呀 我猜你要打var==0 12/14 20:12
2F:→ chchwy:sorry我眼殘 12/14 20:13
3F:→ bleed1979:if ((unsigned char)(~var)) 這樣就可以了 12/14 20:19
4F:→ bleed1979:因為如果是int的話 (~var)是-256 12/14 20:20
5F:→ lgs:原來是被偷偷轉型了 @ @ 那第二題是因compiler作法而異囉?? 12/14 20:29
6F:推 VictorTom:第二段你寫if(var=0), 最後留在if()裡判斷的是0, 結果肯 12/14 20:48
7F:→ VictorTom:定是false的, 不會因為compiler作法而異吧....@_@" 12/14 20:48