874-2021年真题-填空题1-自增(++)、自减(--)条件运算符和条件表达式

自增、自减

++i,- -i(在使用i之前,先使i的值加(减)1)
i++,i–(在使用i之后,使i的值加(减)1)

++i是先执行i=i+1再使用i的值
i++是先使用i的值,再执行i=i+1

i=3;
printf("%d",++i);
输出的结果是4

printf("%",i++)
输出的结果是3

条件运算符和条件表达式

(a>b)?a:b
是一个条件表达式
?是条件运算符
如果为真,则条件表达式的值等于a,否则为b

条件运算符由两个符号(?和:)组成,必须一起使用。要求有三个操作对象,称为三目(元)运算符,它是C语言中唯一一个三目运算符。

条件表达式的一般形式为
表达式1?表达式2:表达式3

先求解表达式1,若为非0则求解表达式2,此时表达式2的值就是整个条件表达式的值
若表达式1的值为假,则求解表达式3,表达式3的值就是整个条件表达式的值。
max=(a>b)?a:b
的执行结果就是将条件表达式的值赋给Max,也就是将a和b二者中的大者赋给max

条件运算符优先于赋值运算符,因此赋值表达式的求解过程是先求解表达式,再将它的值赋给max

上面的例子是利用了条件表达式的值,把它赋给一个变量max,其实也可以不把条件表达式的值赋予一个变量,而在条件表达式中的表达式2和表达式3中对Max赋值,并在条件表达式后面加一个分号,就成为了一个独立的语句。
a>b?(max=a):(max=b);//表达式2和3都是赋值表达式

相当于
if(a>b) max=a;
else max=b;

条件表达式还可以写成
a>b?printf("%d",a): printf("%d”,b)

即表达式2和表达式3不仅可以是数值表达式,还可以是赋值表达式或函数表达式。

题目

int a=2,则a=a++>-1?++a:–a后,a=

表达式1:a++>-1
条件运算符优先于赋值运算符
表达式2:++a
表达式3:–a
最后赋值a

a++,++a都是将a变为a=a+1
所以表达式1a++之后就是a=3,>-1,成立
执行表达式2

此时就是a=++a
此时是,现将a先加1,之后再将a的值赋给a
所以此时a为4

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向上Claire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值