在C语言中,为什么++i为左值表达式,而i++不是左值表达式?
4个回答
展开全部
递增和递减运算符有两种形式:前置版本和后置版本。这两种运算必须作用于左值运算对象,前置版本将对象本身作为左值返回,后置版本则将对象原始值的副本作为右值返回
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-02-04
引用zhq7352503的回答:
++i是直接给i变量加1,然后返回i本身,因为i是变量,所以可以被赋值,因此是左值表达式
i++现产生一个临时变量,记录i的值,在i的值被使用后,再后给i加1,接着返回临时变量,然后临时变量不存在了,所以,不能再被赋值,因此是右值表达式
++i是直接给i变量加1,然后返回i本身,因为i是变量,所以可以被赋值,因此是左值表达式
i++现产生一个临时变量,记录i的值,在i的值被使用后,再后给i加1,接着返回临时变量,然后临时变量不存在了,所以,不能再被赋值,因此是右值表达式
展开全部
临时变量是常量,所以不可作为左值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-12-18
展开全部
含义不同
追答
前者是在运算之前加1,而后者是运算之后再加1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询