题目
语句x = (a = 5,b = ++a); 运行后,x、a、b的值依次为?
我想知道a的值到底是5还是6?
我想知道a的值到底是5还是6?
提问时间:2020-06-13
答案
结果都是6,整个表达式运算结果如下.
0.你首先要牢记,当一个变量被赋予一个新值的时候,旧值就没有了
1.a首先被赋予5这个值.
2.++在前面是先加后算,所以a先自增为6,这时候5就已经没有了.
3.a自增过后,b被赋予运算过后的a,也就是6了.
4.因为逗号表达式(括号中多个逗号的就是逗号表达式,一般最后计算)的值总是取括号中的最后一个,所以x取b的值,还是6.
不信可以自己写程序试试……
扩展一下,考虑下面这个表达式:
int x,a,b,c;
x = (a = 5, b=a++,c=++a,456,789);
//肯定先从括号中开始算起.
//a刚开始等于5
//b=a++,++运算在后,先算后加,先把a的5给b,然后把a加1,此时b为5,a为6
//c=++a,++运算在前,先加后算,因为上一个式子a已经是6了,所以a再加1,变成7,再给c,此时a为7,c也为7.
//最后才算逗号,x肯定是取后面一个的值,也就是789.
//所以最后x=789,a=7,b=5,c=7
因为不知道你是学C,还是C++的,这两个式子,具体编程输出方法我就不写了.
0.你首先要牢记,当一个变量被赋予一个新值的时候,旧值就没有了
1.a首先被赋予5这个值.
2.++在前面是先加后算,所以a先自增为6,这时候5就已经没有了.
3.a自增过后,b被赋予运算过后的a,也就是6了.
4.因为逗号表达式(括号中多个逗号的就是逗号表达式,一般最后计算)的值总是取括号中的最后一个,所以x取b的值,还是6.
不信可以自己写程序试试……
扩展一下,考虑下面这个表达式:
int x,a,b,c;
x = (a = 5, b=a++,c=++a,456,789);
//肯定先从括号中开始算起.
//a刚开始等于5
//b=a++,++运算在后,先算后加,先把a的5给b,然后把a加1,此时b为5,a为6
//c=++a,++运算在前,先加后算,因为上一个式子a已经是6了,所以a再加1,变成7,再给c,此时a为7,c也为7.
//最后才算逗号,x肯定是取后面一个的值,也就是789.
//所以最后x=789,a=7,b=5,c=7
因为不知道你是学C,还是C++的,这两个式子,具体编程输出方法我就不写了.
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
1,人们染上烟瘾,最终因吸烟使自己丧命.
最新试题
- 1同时满足①M⊆{1,2,3,4,5}; ②若a∈M,则(6-a)∈M的非空集合M有多少个?
- 2I know a little English .
- 3银行按揭贷款22万元,贷款年利率为12%,要求6年还清,计划于每年年末等额摊还.每年偿还本金、利息各多少
- 4| k |+k是负数吗?为什么?| k |-k呢?...
- 5设x1、x2是方程是2x^2+4x-3=0的两个根,利用根与系数的关系,求下列式的值:绝对值X1-X2绝对值
- 6已知一动点在时刻t的速度为3t-2,且t=0时位移是5,试求动点的运动方程
- 7艺术手法和表达方式有什么区别?
- 8血液中未参与免疫反应的淋巴细胞都是记忆细胞,错在哪里?淋巴细胞是个统称,包括哪些细胞?
- 9一桶油,第一次倒出5分之1,第2次倒出15千克,第三次倒出3分之1,还剩8又3分之1千克,这桶油原有多少千克
- 10已知X+Y=-5.XY=6,X的平方+Y的平方的值是?
热门考点
- 1英语翻译
- 2一个圆锥的高是8分米,与一个棱长是4分米的正方体体积相等,圆锥的底面积是多少平方分米?
- 3亚 这个字是多音字吗?如果是,那么有几个读音?
- 4粒子的电性
- 5两个数的最大公约数是1,最小公倍数是72,这两个数是_和_或_和_.
- 6My the final day of the world what time future.
- 7在()里填合适的数 使下面的等式成立
- 8水果店3天售出苹果5/8吨,照这样计算,剩下的5/3吨苹果还要几天售完?
- 9集合描述法 抛物线y=x²—3上的所有点的全体
- 10A、B两市间的铁路为直线,甲乘一列火车从A市出发,火车从启动匀加速到60km/h用2min,以后匀速运动48.5min,