问几道C语言的问题

Python019

问几道C语言的问题,第1张

第一道

因为你if里面是x=y所以是将y的值赋给x,并且用x的值来判断if条件为真所以可以表示为x=y=0,所以if语句中条件为假,执行else语句,如果你改成x==y则因为x和y的值相等所以if中的值为1,则执行printf("AAA")

第二题

我运行了下结果为

你的case后面那个1还有2与case有空格吗?没空格的话就是无效的case语句

结果是DDD 有空格的话运行后就是BBBCCC首先x==y则为1运行case 1,因为case1没break则继续运行case2 直到break结束

这个涉及到逗号表达式的问题,逗号表达式的结果是最后一个表达式的值作为整个逗号表达式的值;对于a=4,b=a+5,b++等价于

int i

a = 4

b = a + 5 //b = 9

b ++// i = bb = b + 1

则整个逗号表达式的值为i也就是9;同理a=4 ,b=a+5,++b等价于

int i

a = 4

b = a + 5 //b = 9

b ++// b = b + 1i = b

则整个逗号表达式的值为i也就是10

备注:变量i的值是逗号表达式的值,也就是i = (a=4,b=a+5,b++)或者i = (a=4 ,b=a+5,++b)