我该如何阅读作业?

时间:2014-09-24 16:41:42

标签: c++ variable-assignment assignment-operator

我作为初学者学习C ++,而我的书解释了什么是作业,但我不能理解这本书试图让我理解的一个小概念:

int a = 3; // a starts out with the value 3
a = a + 7; // a gets the value of a + 7 (that is, 10)

我的书中所说的是:最后的作业值得注意。首先,它清楚地表明=并不意味着等于 - 显然,a不等于a + 7.这意味着分配,即是,在变量中放置一个新值。这是什么意思 ?我该如何阅读作业? 例如:      a = a + 7; //我应该读它:a等于+ 7?

3 个答案:

答案 0 :(得分:3)

代码可能会以下列方式扩展:

int a; // declaration of the variable.        a has undefined value.
a = 3; // Assign the value 3 to a.            a is 3.
a = a + 7; // Assign value of (a + 7) to a.   a is 10.

首先评估表达式(a + 7),将(3 + 7)的值分配给a。

token =用于赋值,与平等无关。

答案 1 :(得分:2)

分配意味着右侧(rhs)将被评估为单个值,然后分配到左侧(lhs)

a = a + 7;

现在,rhs - > a + 7 - > 3 + 7 - > 10,现在我们有一个值,并将10分配给a

答案 2 :(得分:2)

在C ++中, = 是赋值运算符。 == 是相等运算符。

阅读关于运算符先例的章节(运算符对其操作数执行操作的顺序)。

=(赋值运算符)是一个二元运算符,具有最低优先级(这是首先执行+ 7操作的原因)并且 将表达式的结果在其右侧分配给左侧的变量

对于,a = a + 7,从不将其作为等于 a + 7读取,但在a 被分配时习惯阅读 a + 7(或任何表达式)的值。

=还将左侧变量(a)的退出值替换为右侧(a + 7)的表达式结果。