在C语言中,为什么++i为左值表达式,而i++不是左值表达式?

 我来答
zhq7352503
推荐于2018-03-28
知道答主
回答量:7
采纳率:0%
帮助的人:3.2万
展开全部
++i是直接给i变量加1,然后返回i本身,因为i是变量,所以可以被赋值,因此是左值表达式
i++现产生一个临时变量,记录i的值,在i的值被使用后,再后给i加1,接着返回临时变量,然后临时变量不存在了,所以,不能再被赋值,因此是右值表达式
追问
谢谢
画初拓柿饿0j
2014-12-18 · 超过14用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:21万
展开全部
递增和递减运算符有两种形式:前置版本和后置版本。这两种运算必须作用于左值运算对象,前置版本将对象本身作为左值返回,后置版本则将对象原始值的副本作为右值返回
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2018-02-04
引用zhq7352503的回答:
++i是直接给i变量加1,然后返回i本身,因为i是变量,所以可以被赋值,因此是左值表达式
i++现产生一个临时变量,记录i的值,在i的值被使用后,再后给i加1,接着返回临时变量,然后临时变量不存在了,所以,不能再被赋值,因此是右值表达式
展开全部
临时变量是常量,所以不可作为左值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-12-18
展开全部
含义不同
追答
前者是在运算之前加1,而后者是运算之后再加1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式