首页 > 试题广场 >

请选择下面代码的输出结果

[单选题]
请选择下面代码的输出结果
#include <iostream>
using namespace std;
int main(int argc, char*argv[])
{
    int a = 10;
    int b = 4;
    int c = a / b;
    int d = c * a * b++;
    std::cout << d << std::endl;
    return 0;
}
  • 60
  • 80
  • 100
  • 125
int d=c*a*b++;
后缀自加运算符非优先级高于算术运算符*,所以先执行b++,此时b的值为5,但b++的值仍然为4;
接着按自左向右的顺序执行c*a*b++,等价于c*a*(b++),即2*10*4,所以结果为80.
发表于 2016-08-15 16:56:57 回复(0)
b++ 是先把 b 作为表达式的结果,然后再去做  b = b +1

若写成 d=c*a*++b;  是先去做 b=b+1,然后再把b作为表达式的结果  则为100
编辑于 2015-09-08 23:33:36 回复(2)
int a = 10;
int b = 4;
int c = a / b; // c = 2
int d = c * a * b++; // d = 2 * 10 * 4++,b在运算之后自增为b = 5
printf("%d\n", d); // 80

编辑于 2015-09-09 10:01:14 回复(0)
a=10;
b=4;
c=a/b=2;//注意c为int型,舍去后缀
d=2*10*4=80
发表于 2016-09-04 15:19:11 回复(0)
注意b++的取值时间:
b++为先取b的值做计算,再自增;
++b为先自增,再取b的值做计算;
发表于 2018-08-30 21:25:02 回复(0)
c=2 2*4*10 然后b再加一
发表于 2015-09-08 16:27:43 回复(0)
去查了一下前置++与后置++的去别,其实运算符都是函数,在这里++的优先级高于*的优先级;
++的执行过程是这样的:先用一个临时变量拷贝原对象(在此为int内置变量),然后对int进行加的操作,最后返回临时变量,故可以看出在这里的b++的返回值为4,因此此题的结果为80
编辑于 2017-11-16 10:50:01 回复(0)
++运算符的优先级高于*,
发表于 2016-05-23 15:49:23 回复(0)
 c = a/b = 10/4 = 2
注意这里要取整
发表于 2016-03-30 21:23:54 回复(0)
注意单目运算符++优先级高于数***算符*
发表于 2017-07-21 21:50:42 回复(0)
感觉刷再多的题也没有丝毫进步,是不是废了
发表于 2023-06-26 13:23:27 回复(0)
注意b++的取值时间: b++为先取b的值做计算,再自增; ++b为先自增,再取b的值做计算;
发表于 2023-05-10 21:24:20 回复(0)
这里应该从b++底层分析。
由于运算符优先级,先运算的是b++,及实际上是b调用了void operator++()函数。
返回的是一个右值,其内部代码大致是:
int operator++(){
    int a = *this;
    *this = *this + 1;
     return a;
}
(int类型中是没有this指针的,为了便于表示用的this这里我也不清楚函数是如何获取到b的值,欢迎回复!!
所以表达是式中的b++就等于右值a的值,但b已经变成5;
发表于 2022-09-19 16:59:06 回复(0)
b++先运算,再自增,++ b是先自增再运算
发表于 2022-01-02 00:18:26 回复(0)
自加的优先级高,但值仍为4
发表于 2021-08-12 07:38:47 回复(0)
b++指的是运算完再加到自己身上的,这样子理解答案就出来了
发表于 2021-04-17 16:05:27 回复(0)
还好没有81,不然我害得错
发表于 2020-08-04 15:07:20 回复(0)
先用后加
发表于 2020-07-07 14:18:32 回复(0)
a=10;
b=4;
c=a/b=2;//注意c为int型,舍去后缀,不会四舍五入的
d=2*10*4=80
发表于 2019-05-05 16:26:55 回复(0)
int  c=a/b;
此处为整型除整型,结果仍然为整型,没有后面的小数部分
int  d=c*a*b++;
此处存在优先级问题,如果记不得++的优先级大于*,那就记住一般情况单目运算符优先级高于双目运算符

发表于 2018-07-17 21:34:44 回复(0)