理解C中的增量运算符

为什么C中的以下内容非法?

y = (w + x)++;

根据我的书,这是非法的,但我不明白为什么.

在i中,i的值被改变.执行后,我的值是一加上它以前的值.但是,您不能在w x中存储值,因此您不能执行以下任何操作,所有这些操作(如果它们有效)将具有或多或少相同的效果:

w+x = w+x+1;
w+x += 1;
(w+x)++;

可以放在赋值左侧的东西通常称为左值(l代表左).说这个的简洁方法是只能应用于左值,而w x不是左值.您可以在此问题及其答案中阅读有关左值(和其他类型值)的更多信息:

> What are rvalues, lvalues, xvalues, glvalues, and prvalues?

相关文章
相关标签/搜索