seuzb 发表于 2011-9-8 21:04:30

C语言问题求解

求助:unsigned short tmp;
      tmp = 4;
      if (tmp & 0x0004 != 0)
      {
      执行语句;
       }
这里为什么执行语句没有执行,而改写为
      unsigned short tmp;
      tmp = 4;
      if (tmp == 0x0004)
      {
      执行语句;
       }
却可以执行?

myips 发表于 2011-9-8 21:11:15

!=的优先级高于&

if (tmp & 0x0004 != 0)

tmp&1
tmp=0x04

结果就是
if(1)

nazily215 发表于 2011-9-8 21:20:15

不妨把C学完整?

seuzb 发表于 2011-9-8 21:30:00

感谢一楼,枉我学了这几年C语言

seuzb 发表于 2011-9-8 21:54:14

回复【1楼】myips 福尔摩小斯
-----------------------------------------------------------------------

结果就是if(0)

zke2006 发表于 2011-9-8 22:16:04

括号还是要勤加
页: [1]
查看完整版本: C语言问题求解