• 考研计算机专业课自增和自减运算符


    2.12 自增和自减运算符

    C++还提供一元自增运算符(increment operator,++)和一元自减运算符(dcrement operator),见图2.13。如果变量c递增1,则可以用自增运算符++,而不用表达式c=c+1或c+=1。如果将自增和自减运算符放在变量前面,则称为前置自增或前置递减运算符(preincrement或predecrementope~torL如果将自增和自减运算符放在变量后面,则称为后置自增或后置自减运算撤postmcrement或postdcrement operator)。前置自增(前置自减)运算符使变量加1(减1),然后在表达式中用变量的新值。后置自增(后置自减)运算符在表达式中用变量的当前值,然后再将变量加1(减1)。

     运算符           名称        示例表达式        说明 
        ++            前置自增    ++a            将a加1,然后在a出现的表达式中使用新值
        ++            后置自增    a++            在a出现的表达式中使用当前值,然后将a加1
        --            前置自减    --b            将b减1,然后在b出现的表达式中使用新值
        --            后置自减    b--            在b出现的表达式中使用当前值,然后将b减1 
    
    图 2.13 自增和自减运算符

    图2.14的程序演示了++运算符的前置自增与后置自增计算之间的差别,后置自增变量c使其在输出语句中使用之后再递增,而前置自增变量c使其在输出语句中使用之前递增。

    // Fig, 2.14:fig02 14.cpp
    // Preincrementing and postincrementing
    #include <iostream.h>
    int main()
    {
    	int c;
    	C = 5;
    	cout << C << endl;       // print 5
    	cout << C++ << endl;      // print 5 then postincrement
    	cout << c << endl << endl; // print
    	c = 5;
    	cou << c << endl;       // print 5
    	cout << ++c << endl;      // preincrement then print 6
    	cout << c << endl;
    	return  O;    //  successful  terminatiOn
    }
    输出结果:
        5
        5
        6
    
        5
    
        6
        6
    图2.14 前置自增与后置自增计算之间的差别

    程序显示使用++运算符前后的c值,自减运算符的用法类似。

    编程技巧2.14

    一元运算符及其操作数之间不能插入空格。

    图2.11的三个赋值语句:

      passes=passes+1;
      failures=failures+1
      student=student十1;

    可以改写成更简练的赋值运算符形式:

    passes+=1;
    
    failures+=1;
    
    student+=1;

    使用前置自增运算符,如下所示:

    ++passes;
    
    ++failures;
    
    ++student;

    或使用后置自增运算符,如下所示:

    passes++
    
    failures++
    
    student++

    注意,单独一条语句中自增或自减变量时,前置自增与后置自增计算之间的的结果一样,前置自减与后置自减计算之间的结果也相同。只有变量出现在大表达式中时,才能体现前置自增与后置自增计算之间的差别(和前置自减与后置自减计算之间的差别)。

    目前只用简单变量名作为自增和自减的操作数(稍后会介绍,这些运算符也可以用于左值)。

    觉编程错误2.11

    要用非简单变量名表达式(如++(x+1))作为自增和自减运算符的操作数是个语法错误。

    图2.15显示了前面所介绍的运算符优先级和结合律,从上到下,优先级依次递减。第二栏介绍每一级运算符的结合律,注意条件运算符(:)、一元运算符自增(++)、自减(--)、正(+)、负(-)、强制类型转换以及赋值运算符(=、+=、-;、*=、/=和%=)的结合律为从右向左。图1.15中所有其他运算符的结合律为从左向右。第三栏是运算符的组名。

         运算符                               结合律                     类型 
        ( )                                                             括号
        ++  --  + - static_cast()              从左向右                 一元
        *  /  %                                从右向左                 乘
        +  -                                   从左向右                 加
        <<  >>                                 从左向右                 插入/读取
        <    <=    >    >=                     从左向右                 关系
        ==    !=                               从左向右                 相等
        ?:                                     从右向左                 条件
        =    +=    -=    *=    /=    %=        从右向左                 赋值
        ,                                     从左向右                 逗号 
    
    图 2.15 前面所介绍的运算符优先级和结合律

    2016考研数学http://www.2016kaoyan.com/
    考研英语真题http://www.kyjxy.com/yingyu/zhenti/
    考研专业目录http://www.kyjxy.com/yuanxiao/zhengce/

  • 相关阅读:
    idea快捷键
    idea抛异常方式
    scott登陆PLSQL时候出现insufficient privileges的解决方法
    Linux下磁盘实战操作命令
    Docker容器常用命令
    Docker启动守护式容器
    Docker命令总结
    Docker镜像常用命令
    Centos7系统Docker安装
    Docker组成三要素
  • 原文地址:https://www.cnblogs.com/along-may/p/4546058.html
Copyright © 2020-2023  润新知