鱼C论坛

 找回密码
 立即注册
查看: 1029|回复: 2

怎么执行的

[复制链接]
发表于 2023-6-8 09:48:23 | 显示全部楼层 |阅读模式
1鱼币
设有int i;则表达式(i=1,i=10)?i++||++i:++i的值为 (A   )
    A).1      B).2       C).3      D).10

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-8 09:56:55 | 显示全部楼层

表达式(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。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-6-8 10:23:36 | 显示全部楼层
好嘞谢谢能不能再问一下对于&&如果&&前面的表达式为真是会继续执行吗,为假是不是直接返回假?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 13:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表