关于逻辑运算符“&&““||”的问题
admin 于 2013年11月22日 发表在 C/C++开发笔记
1.逻辑运算符&&,||的“短路问题”
先看一个例子:
int main(void) { int x, y; x=y=0; x || ++y; printf("%d,%d\n",x,y); x=y=0; x && ++y; printf("%d,%d\n,x,y"); }
输出结果:0,1 及 0,0
在(x && ++y)语句中,机器执行此语句时,由于x=0 为假,无论后面语句为真还是假,此语句结果皆为假,所以,++y并没有执 行。||语句同理,这就给我们一个注意点,在使用&&或者||语句一定要注意语句的真实逻辑关系,这个问题,尤其在单片机开发中尤为重要。
2.分号的使用
C语言中一定要注意分号的使用,如:
if(x>b) b=x;
如果多加分号:
if(x>b); b=x;
则变为:b=x,无论任何时候都执行;if的判断语句只是执行了一个空语句。
注意:本站所有文章除特别说明外,均为原创,转载请务必以超链接方式并注明作者出处。
标签:C/C++