C++数据结构和算法分享专题

15_逻辑运算符分析

2018-03-07  本文已影响5人  编程半岛

关键词:&&||!

1. 初探逻辑运算符

#include <stdio.h>

int main()
{
    int i = 0;
    int j = 0;
    int k = 0;
    
    ++i || ++j && ++k;
    
    printf("i = %d\n", i);
    printf("j = %d\n", j);
    printf("k = %d\n", k);

    return 0;
}

输出结果:

i = 1
j = 0
k = 0

2. 逻辑运算符分析——程序中的短路

&&||混合运算时,整个表达式被看作||表达式(因为||的优先级低于&&,因此最后运算||),编译器从左向右开始计算&&表达式,当某个&&表达式的值为真时,停止计算,整个表达式值为真。

#include <stdio.h>

int g = 0;

int f()
{
    printf("In f()...\n");
    
    return g++;
}

int main()
{
    if( g || f() && f() )
    {
        printf("In if statement: %d\n", g);
    }
    
    printf("In main(): %d\n", g);

    return 0;
}

输出结果:

In f()...
In main(): 1

3. !逻辑非分析

C语言中的逻辑非!只认识0,只知道见了0就返回1.因此当其遇见的值不是0时,其结果为0.

4. 逻辑非运算符的使用

#include <stdio.h>

int main()
{
    printf("%d\n", !0);
    printf("%d\n", !1);
    printf("%d\n", !100);
    printf("%d\n", !-1000);

    return 0;
}

输出结果:

1
0
0
0

5. 小结

声明:此文章为本人在学习狄泰软件学院《C语言深度解析》所做的笔记,文章中包含狄泰软件资料内容一切版权归狄泰软件所有!

上一篇 下一篇

猜你喜欢

热点阅读