怎么执行的
设有int i;则表达式(i=1,i=10)?i++||++i:++i的值为 (A )A).1 B).2 C).3 D).10
表达式(i=1,i=10)?i++||++i:++i是一个条件表达式,它的形式是条件?表达式1:表达式2,意思是如果条件为真,就执行表达式1,否则执行表达式2。
在这个例子中,条件是(i=1,i=10),这是一个逗号表达式,它的形式是表达式1,表达式2,意思是先执行表达式1,然后返回表达式2的值。
所以,i=1,i=10的值就是10,因为先把1赋值给i,然后返回i=10的值。在C语言中,任何非零的整数都被视为真,所以条件为真。
那么,就执行表达式1,也就是i++||++i。这是一个逻辑或表达式,它的形式是表达式1||表达式2,意思是如果表达式1为真,就返回真,否则返回表达式2的值。
在这个例子中,表达式1是i++,这是一个后置自增运算符,它的含义是先返回i的值,然后再把i加1。所以,i++的值就是10(因为前面已经把i赋值为10),然后i变成11。
由于10为真,所以逻辑或表达式就返回真。在C语言中,真被视为1⁴。所以,整个条件表达式的值就是1。
答案是A) 1。
好嘞谢谢能不能再问一下对于&&如果&&前面的表达式为真是会继续执行吗,为假是不是直接返回假?
页:
[1]