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++