zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    C++笔记--模板
    C++笔记--抽象机制
    C++--VECTOR的简单应用
    C++面试笔记--STL模板与容器
    C++面试笔记--指针和引用
    《转载》什么变量在堆内存里存放,什么变量在栈内存里存放
    C++面试笔记--const、sizeof
    C++面试笔记--宏定义
    C++笔记--指针数组和结构
    C++笔记--异常
  • 原文地址:https://www.cnblogs.com/hangwei/p/2571721.html
Copyright © 2011-2022 走看看