• 6-运算


    一、基本运算

    1.算术运算符

    • +  加法运算符
    • -  减法运算符,或负值运算符
    • *  乘法运算符
    • /  除法运算符
    • %  模运算符,或称取余运算符,要求%两侧均为整型

    2.关系运算符

    • <   小于运算符
    • <=  小于等于运算符
    • >   大于运算符
    • >=  大于等于运算符
    • ==  等于运算符
    • !=  不等于运算符

    C语言中没有boolean类型

    在C语言中,关系运算的结果为"真"就返回1,"假"就返回0

    int a1 = 5 > 4; // 1
    
    int a2 = 5 < 4; // 0

    在C语言中,任何非0值都为"真",只有0值才为"假"

    注意点:

    int a = 10;
    
    if (a = 0) {
        printf("条件成立");
    } else {
        printf("条件不成立");
    }

    上面代码成功运行,输出 “条件不成立”

    但是,这里有很大的坑!!

    你本来是想判断a是否为0,那么本应该写if (a == 0),若你误写成了if (a = 0),那将是一件非常可怕的事情,因为编译器又不报错,这样的BUG就难找了。因此,像a==0这样的表达式,最好写成0==a,若你误写成0=a,编译器会直接报错的。

    拓展:

    C语言中,可以不保存关系运算的结果,下面写法是合法的:

    1 int a = 10;
    2 
    3 a > 10;
    4 a == 0;
    5 printf("%d", a);

    这里又是一个陷阱,假设你的本意是想给a赋值为0,那么本应该写a = 0; ,若你误写成a == 0; ,那将又是一个非常难找的BUG,因为编译器根本不会报错在1993年的时候,这个BUG差点让一桩价值2000万美元的硬件产品生意告吹,因为如果这个BUG不解决,这个产品就没办法正常使用。

    3.逻辑运算符

    • &&  逻辑与运算符
    • ||  逻辑或运算符
    • !   逻辑非运算符

    逻辑运算的结果也只有两个:成立就为"真",返回1;不成立就为"假",返回0

    4.赋值运算符

    1.简单的赋值运算符 = :int a = 5;

    2.复合赋值运算符

    • +=  加赋值运算符。如a += 3+1,等价于 a = a +(3+1)
    • -=  减赋值运算符。如a -= 3+1,等价于 a = a -(3+1)
    • *=  乘赋值运算符。如a *= 3+1,等价于 a = a *(3+1)
    • /=  除赋值运算符。如a /= 3+1,等价于 a = a /(3+1)
    • %=  取余赋值运算符。如a %= 3+1,等价于 a = a %(3+1)

    5.自增运算符和自减运算符

    • ++  自增运算符。如a++,++a,都等价于a = a+1
    • --  自减运算符。如a--,--a,都等价于a = a-1

    6.逗号运算符和逗号表达式

    逗号运算符主要用于连接表达式

    * 用逗号运算符连接起来的表达式称为逗号表达式,它的一般形式为:

    表达式1, 表达式2, … …, 表达式n

    举例:(输出结果为30)

    1 int main() {
    2  int a = 2;
    3  int b = 0;
    4  int c;
    5  
    6  c = (++a, a *= 2, b = a * 5); 
    7  
    8  printf("c = %d", c);
    9 }

    7.三目运算符

    一般形式为:表达式1 ? 表达式2 : 表达式3

    int a = (b > 5) ? 10 : 9;

    8.sizeof

    * sizeof可以用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。

    int size = sizeof(10);
    printf("10所占的字节数:%d", size);

    输出结果:

    • sizeof( 数据类型 )
    sizeof(float);

    注意,不可以写成sizeof float;

  • 相关阅读:
    HDU 4972 A simple dynamic programming problem
    dd usb 启动盘制作 成功版本
    1233
    openstack kvm 虚拟机磁盘差异衍生
    怎样安装g++/gdb
    区间最小值 线段树 (2015年 JXNU_ACS 算法组暑假第一次周赛)
    hdu
    TCP/IP解析(一):TCP/IP的工作方式
    使用Python生成源文件的两种方法
    zoj1003 Crashing Balloon
  • 原文地址:https://www.cnblogs.com/0zcl/p/6040422.html
Copyright © 2020-2023  润新知