永发信息网

语句x=(a=3,b=++a);x等于多少,能详细点说明运行过程麽

答案:2  悬赏:0  手机版
解决时间 2021-04-04 23:05
语句x=(a=3,b=++a);x等于多少,能详细点说明运行过程麽
最佳答案
x最后等于4。
  (a=3,b=++a)整体是一个逗号表达式,逗号表达式从左往右求值,整个表达式的值为逗号后面的表达式的值,换言之,(a=3,b=++a)的值即表达式(b=++a)的值,而(b=++a)是一个赋值表达式,其值为赋值后的左操作数(此处即b)。
  模拟逗号表达式的求值过程,先求值表达式(a=3),将3赋值给a;然后求值表达式(b=++a),将a递增并将递增后(因为是前置++,所以递增后再赋值)的值(此处即4)赋值给b。
  最后执行x=(a=3,b=++a),因为(a=3,b=++a)的值是b,此处相当于将b赋值给x。通过先前的分析知道b此时的值为4,因此x最后也等于4。
全部回答
int a=0;a=++a;
生成的字节码是:
0 iconst_0 -----0压入栈顶
1 istore_1 [a] -----栈顶值(0)存入局部变量1(a)
2 iinc 1 1 [a] -----变量1自加(++a操作,自加后变量1的值为1)
5 iload_1 [a] -----变量1的值压入栈顶(值为1)(++a效果)
6 istore_1 [a] -----将栈顶值(1)存入变量1(=操作)
a的值依次变化为:0->1->1
x为4
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
爱一个人很久的诗句,形容 文艺句子
关于APEC方式,说法正确的是A.承认单一性B.承
茵字能组什么词
圣原中医名医名方理疗馆地址在什么地方,想过
业绩达标用英语怎么说
使用摩拜单车却被计费,而且一直计费怎么办
法师如何提高法强到1200??
蜀山传奇中怎样下棋赢孤月
判断下列变形是否正确,并说明理由:如果p=q
昨晚做梦妈妈他们都泡在污水里
形容时间过得飞快的段落250字排比句
文中三次提到老妇人"平静地忘着我"此时老妇人
春季高考语数英重要吗?
东风标致308手动档好还是自动档好?
猎豹一共生几只小猎豹?
推荐资讯
单选题下列说法中,正确的是A.凡是均一稳定的
小户型整体厨房怎么装修
黄金从哪里来
2016最火的网络游戏有哪些
地藏菩萨圣号怎么念,南无地藏王菩萨圣号怎么
重庆腊肠怎么吃,重庆麻辣腊肠炒什么菜最好吃
梦见老婆上顾所被人发现
小爱同学不用时需要拔掉电源吗
洪荒耽美文鸿钧攻 主角受
have been to和have been in的区别?
夸一个男人搞笑的句子,形容男人色的语句
电影日夜男女里面那些小浪漫,小孤单我都会细
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?