今日收纳——C语言的一道题

来自学妹问我的一个问题,好吧,我最初以为应该选A,事实证明,我的C确实没学好

问题描述:若变量已经正确定义并赋值,符合C语言语法的表达式是:

A. a=a+1=3

B. a=2++

C. a=3,5

D. 12.3%4

四个选项的运行截图如下:

选项A错误:

a=a+1=3=>a=(a+1=3)

报错内容是:error: lvalue required as left operand of assignment,即C语言的赋值必须是左值的

首先考察a+1=3这条赋值语句是否合法,结果这条语句是不合法的,=”的意义是赋值,C语言的赋值必须是左值的,也就是左边必须是变量,不能是表达式,而a+1是一个表达式,它的意义类似一个常数。

其次,拓展一下,如果改为求a=b=3=》a=(b=3)这条赋值语句的值,结果应该是什么呢?

结果如下:

原因: 赋值表达式的值类型也就是赋值的左值类型,注意是最左比如 a=b=c=d; 那么表达式的值,就是a赋值后的值。

选项B错误:

原因:C语言中表达式和常量都不能做自增运算

 选项C正确:

原因: 

复习逗号表达式的相关内容: 

 选项D错误:

原因:取余运算操作数必须是整型

要认真弄懂每道题哟~学海无涯,继续加油吧! 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值