首页 > 试题广场 >

设以下变量均为int类型,表达式的值不为9的是()?

[单选题]

设以下变量均为int类型,表达式的值不为9的是()

  • (x=y=8,x+y,x+1)
  • (x=y=8,x+y,y+1)
  • (x=8,x+1,y=8,x+y)
  • (y=8,y+1,x=y,x+1)
逗号运算符得到的结果都是括号最后一个表达式的值,C选项最后x+y的值应该是16,注意每个选项中的X+1其实是没有意义的,它没有重新赋值给X,所以经过这一步X的值是没有变化的。
发表于 2018-06-06 10:00:04 回复(0)
赋值运算符自右向左运算,四个选项中的x,y均为8; 逗号运算符优先级别最低,用来连接两个及以上的表达式,从左往右逐个计算各表达式,最后一个表达式的值即为整个逗号表达式的值。
发表于 2019-12-19 19:05:16 回复(0)
此题目的:认识逗号表达式的规则,逗号表达式值和类型又最后一个表达式决定。
发表于 2019-12-21 22:44:28 回复(0)
这题挺有意思
int x, y, z;
z = (y=8, y+1); // 9
z = (y=8, y+1, y); //8
发表于 2022-01-20 17:29:32 回复(2)
逗号表达式只看最后一个运算式。确定该式中的变量值即可。其他式中的x+1或y+1都是无效,因为没有赋值
发表于 2022-06-15 10:24:36 回复(0)
逗号运算符是最后一个决定
发表于 2020-06-30 20:56:49 回复(0)
考察逗号表达式的运算结果:从左至右依次运算,最后一个表达式的运算结果为该逗号表达式的值。
发表于 2022-01-12 14:34:49 回复(0)
A,B选项是错误的,C里面不可以连等赋值,C选项 表达式为最右边,16
发表于 2018-06-05 19:51:19 回复(1)
<p>c。x+y是16</p>
发表于 2020-09-18 00:45:42 回复(0)
tdm_mingw32编译,四个选项都能编译通过,x和y的结果都是8.搞不懂这题的意义。
#include <stdio.h>
void main()
{
int x,y;
x=y=8,x+y,x+1;
printf("x = %d , y = %d",x,y);
}


编辑于 2019-04-21 20:13:02 回复(1)