• c++基础知识-运算符与表达式1(详解)


    一、赋值运算符与表达式

    赋值运算符

    下表列出了 C 语言支持的赋值运算符:

    运算符描述实例
    =简单的赋值运算符,把右边操作数的值赋给左边操作数C = A + B 将把 A + B 的值赋给 C
    +=加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数C += A 相当于 C = C + A
    -=减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数C -= A 相当于 C = C - A
    *=乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数C *= A 相当于 C = C * A
    /=除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数C /= A 相当于 C = C / A
    %=求余数且赋值运算符,求两个操作数的模赋值给左边操作数,浮点数不适用取余数。C %= A 相当于 C = C % A

    赋值运算符支持的是C语言的基本数据类型,包括char、int和double,字符串(字符数组)不能使用赋值运算符。

    示例(book17.c)

    1. /*
    2. * 程序名:book17.c,此程序演示赋值运算符的使用。
    3. * 作者:C语言技术网(www.freecplus.net) 日期:20190525
    4. */
    5. #include
    6. int main()
    7. {
    8. int C=0; // 定义变量C并初始化
    9. int A=21; // 定义变量A并初始化
    10. C=A;
    11. printf("运算符 = 演示,C的值 = %d\n",C);
    12. C+=A; // C=C+A;
    13. printf("运算符 += 演示,C的值 = %d\n",C);
    14. C-=A; // C=C-A;
    15. printf("运算符 -= 演示,C的值 = %d\n",C);
    16. C*=A; // C=C*A;
    17. printf("运算符 *= 演示,C的值 = %d\n",C);
    18. C/=A; // C=C/A;
    19. printf("运算符 /= 演示,C的值 = %d\n",C);
    20. C=200;
    21. C%=A; // C=C%A;
    22. printf("运算符 %= 演示,C的值 = %d\n",C);
    23. return 0;
    24. }

    运行效果
    在这里插入图片描述


    练习题:赋值运算符

    实现三个变量的赋值操作,并输出三个变量的值。请选出错误的赋值操作。

    1. #include
    2. int main(int argc, char** argv)
    3. {
    4. (_____1_____)
    5. printf("a = %d\n", a);
    6. printf("b = %d\n", b);
    7. printf("c = %d\n", c);
    8. return 0;
    9. }

    赋值运算符简介:

    赋值运算符说明示例
    =普通赋值运算符val = 2
    +=加并赋值操作val += 2 等价于 val = val + 2
    -=减并赋值操作val -= 2 等价于 val = val - 2
    *=乘并赋值操作val *= 2 等价于 val = val * 2
    /=除并赋值操作val /= 2 等价于 val = val / 2
    %=取余并赋值操作val %= 2 等价于 val = val % 2
    <<=左移并赋值操作val <<= 1 等价于 val = val << 1
    >>=右移并赋值操作val >>= 1 等价于 val = val >> 1
    &=按位与并赋值操作val &= 1 等价于 val = val & 1
    ^=按位异或并赋值操作val ^= 1 等价于 val = val ^ 1
    |=按位或并赋值操作val |= 1 等价于 val = val | 1
    1. int a, b, c;
    2. a = 10;
    3. b = 10;
    4. c = 10;
    1. int a, b, c;
    2. a = b = c = 10;
        int a = 10, b = 10, c = 10;
        int a = b = c = 10;

    答案:    int a = b = c = 10;


    二、算数运算符与表达式

    算术运算符

    下表显示了 C 语言支持的所有算术运算符。假设变量 A 的值为 18,变量 B 的值为
    5,则:

    运算符描述实例
    +两个数相加A+B 将得到 23
    -一个数减另一个数A-B 将得到 13
    *两个数相乘A*B 将得到 90
    /分子除以分母A/B 将得到 3.6
    %余数运算符,整除后的余数B%A 将得到 3
    ++自增运算符,整数值增加 1A++ 将得到 19
    自减运算符,整数值减少 1A-- 将得到 17

    示例(book15.c)

    1. /*
    2. * 程序名:book15.c,此程序演示算术运算符的使用。
    3. * 作者:C语言技术网(www.freecplus.net) 日期:20190525
    4. */
    5. #include
    6. int main()
    7. {
    8. double A=18; // 定义变量A,赋值18
    9. double B=5; // 定义变量B,赋值5
    10. printf("A的值是:%lf\n",A);
    11. printf("B的值是:%lf\n",B);
    12. printf("A+B的值是:%lf\n",A+B);
    13. printf("A-B的值是:%lf\n",A-B);
    14. printf("A*B的值是:%lf\n",A*B);
    15. printf("A/B的值是:%lf\n",A/B);
    16. //printf("A除B的余数是:%lf\n",A%B);
    17. A++; // 自增1
    18. printf("A自增后的值是:%lf\n",A);
    19. B--; // 自减1
    20. printf("B自减后的值是:%lf\n",B);
    21. return 0;
    22. }

    运行效果
    在这里插入图片描述

    变量的自增或自减有两种写法:

    变量名++; // 表示在本次使用变量后再自增;

    ++变量名; // 表示在本次使用变量前自增;

    变量名–; // 表示在本次使用变量后再自增;

    –变量名; // 表示在本次使用变量前自减;

    示例(book16.c)

    1. /*
    2. * 程序名:book16.c,此程序演示算术运算符++和--的使用。
    3. * 作者:C语言技术网(www.freecplus.net) 日期:20190525
    4. */
    5. #include
    6. int main()
    7. {
    8. int ii=0; // 定义变量ii并初始化
    9. ii=10;
    10. printf("ii++的值是:%d\n",ii++); // 在使用后自增
    11. printf("ii的值是:%d\n",ii);
    12. ii=10;
    13. printf("++ii的值是:%d\n",++ii); // 在使用前自增
    14. printf("ii的值是:%d\n",ii);
    15. return 0;
    16. }

    运行效果
    在这里插入图片描述

    练习题:打印被10整除的数

    打印100以内(包含100)能被10整除的正整数,如何在合适的位置使用自增运算符实现该功能,请选出正确答案填在(1)处。

    1. #include
    2. #define UPPER 100
    3. int main(int argc, char** argv)
    4. {
    5. int i = 1;
    6. (_____1_____)
    7. return 0;
    8. }

     答案:

    1. while (i++ < UPPER)
    2. if (i % 10 == 0)
    3. printf("%d\n", i);

    版权声明

    以上文章来自C语言技术网(www.freecplus.net

    作者:码农有道


  • 相关阅读:
    嵌入式必备技能---git与github
    Windows11 VMware上安装适用于编译Android12源代码的Ubuntu虚拟机
    运维工程师——学习路线技能图谱
    从哪里下载 Oracle database 11g 软件
    如何从 Android 内部存储中恢复已删除的照片?
    [ C++ ] 一篇带你了解C++中动态内存管理
    NSSCTF做题(3)
    IDEA实现远程Debug调试
    从汇编看语法糖(C++引用)和指针的区别
    文献阅读5
  • 原文地址:https://blog.csdn.net/mooczhimahu/article/details/126076748