• C++运算符的优先级和结合性


    1.已知int i=1,j=2;则表达式i+++j的值为?

    答:因为++运算符的优先级高于+,所以表达式为(i++)+j。对于i++来说,++后置,即先赋值,后自增。

          所以i+++j=1+2=3;另外可以知道i=i+1=2;

    2.已知int i=1,j=2;则表达式++i+j的值为?

    答:同第1题的分析,++运算符高于+,++前置,即先自增,后赋值。

          所以++i+j=2+2=4;另外i=i+1=2;

    3.已知int i=0,j=1,k=2;则逻辑表达式 ++i || --j && ++k 的值为?

    答:因为逻辑与 && 运算符的优先级高于逻辑或 || ,表达式为++i || (--j && ++k),

          算出 || 左边的值为1,右边的值为0。即1 || 0 ,结果为 1 。答案为 1 。(想想如果是1 || 2 呢?见第4题)

    4.执行下列语句:

       int x,y;

       x=y=1; ++x || ++y;

       求 x ,y的值?

    答:考察逻辑或 || 的结合性,其结合性为从左至右。首先左边的值为2。程序得到一个true值(1),即返回。

          所以x=2; y=1; 如果 ++x || ++y; 换成 --x || ++y; 则x=0; y=2;

    5.已知 int x=5;执行 x+=x-=x*x; 后,x的值为?

    答:从右往左结合,首先是 x-=25=-20, 然后x+=(-20), 即-20+(-20) = -40 。所以 x = -40;

  • 相关阅读:
    phalcon: 当删除循环删除一组数据,需要判断影响的行affectedRows
    java:经典消费生成者
    java:同步和死锁
    java: Thread 和 runnable线程类
    git: windows git ssh keys生成
    ​'JAVAC' 不是内部或外部命令解决方法,记得要重启cmd
    java jar包解析:打包文件,引入文件
    php 对多维数组排序array_multisort
    appium入门基础
    中文Appium API 文档
  • 原文地址:https://www.cnblogs.com/hangwei/p/2571721.html
Copyright © 2020-2023  润新知