三道C++的填空题,答案我已经知道,请大神帮忙解释一下解题过程,谢谢。

1 执行语句“y
= (x = 3, z = --x);”后,变量的值依次为_ 。

2.设#define a(x) x*x;

cout<<a(4+6)<<endl;

上述程序段运行结果为 。

3.假定所有变量均已正确定义,下列程序段运行后x的值是 。

a = b = c = 0; x = 35;

if(!a)x--;else if(b) ; if(c)x = 3;else x = 4;
‍‍‍‍

1、先是括号内的逗号表达式,--x先减后用后,x为2 ,z是2,y也是2

2、4+6*4+6 = 34

3、if(!a)
x--;
else
if(b){};
if(c)
x=3;
else
x=4;
结果是4。追问

第一题y=(2,2) 表示y 就等于2么?
第二题#define a(x) x*x 这时 a(4+6) 表示输出的就是4+4*6+6 ?为什么啊?
第三题 没明白...

追答

1、表示等于逗号表达式的结果啊,

2、宏定义的时候x没加括号,你把4+6替换进去的时候也不能加括号就ok了

3、if else匹配

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答