zoukankan      html  css  js  c++  java
  • C语言-第11课

    第11课 - 逻辑运算符使用分析

     

    1. 实例分析

    #include <stdio.h>

    int main()

    {

        int i = 0;

        int j = 0;    

        if( ++i > 0 || ++j > 0 )

        {

            printf("%d ", i);

            printf("%d ", j);

        }   

        return 0;

    }

    运行结果:1

         0

    #include <stdio.h>

    int main()

    {

        int i = 0;

        int j = 0;    

        if( ++i > 0 && ++j > 0 )

        {

            printf("%d ", i);

            printf("%d ", j);

        }   

        return 0;

    }

    运行结果:1

      1

    1. 程序中的短路:

    ||从左向右开始计算,当遇到为真的条件时停止计算,整个表达式为真;所有条件 ;所有条件为假时表达式才为假。

    &&从左向右开始计算,当遇到为假的条件时停止计算,整个表达式为假;所有条件为真时表达式才为。

    #include <stdio.h>

    int main()

    {

        int i = 0;

        int j = 0;    

        if( i++ > 0 || ++j > 0 )

        {

            printf("%d ", i);

            printf("%d ", j);

        }   

        return 0;

    }

    运行结果:1

      1

    #include <stdio.h>

    int g = 0;

    int f()

    {

        return g++;

    }

    int main()

    {

        if( f() && f() )

        {

            printf("%d ", g);

        }   

        printf("%d ", g);    

        return 0;

    }

    运行结果:1

    f()第一次调用的时候,返回值是g,它的值是0。对于短路规则,if语句中的内容不会被调用。之后g的值加1,变为1。打印出来。

     

    1. “!”到底是什么

    C语言中的逻辑符“!”只认得0,只知道见了0就返回1,因此当其作用的值不是0时,其结果为0

    #include <stdio.h>

    int main()

    {

        printf("%d ", !0);

        printf("%d ", !1);

        printf("%d ", !100);

        printf("%d ", !-1000);

        return 0;

    }

    运行结果:1

              0

              0

              0

    1. 三目运算符

    三目运算符(a?b:c)可以作为逻辑运算符的载体。

    规则:当a的值为真时,返回b的值;否则返回c的值。

    #include <stdio.h>

    int main()

    {

        int a = 1;

        int b = 2;

        int c = 0;   

        c = a < b ? a : b;   

        //(a < b ? a : b) = 3; 这样写是错误的

    *(a < b ? &a : &b) = 3;

        printf("%d ", a);

        printf("%d ", b);

        printf("%d ", c);   

        return 0;

    }

    运行结果: 3

               2

               1

     

  • 相关阅读:
    MFC 监控界面上所有文本框值的变化
    VC遍历窗体控件的实现
    VC关于置顶窗口的方法小结
    查看linux系统版本命令
    windows下maven打包eclipse工程
    Java多线程-一个简单的线程,实现挂起和恢复的功能
    maven常用操作
    eclipse调试java技巧
    Linux下报 java.net.SocketException权限不够 异常解决
    体验vSphere 6之1-安装VMware ESXi 6 RC版(转载)
  • 原文地址:https://www.cnblogs.com/free-1122/p/9706868.html
Copyright © 2011-2022 走看看