0% found this document useful (0 votes)
25 views2 pages

Assignment Operators and Expressions: Assignment Operator. Op Op

Assignment operators allow expressions like i+=2 to be written more concisely than i=i+2. Common binary operators like + have a corresponding assignment operator like +=. Using assignment operators makes code more readable by corresponding better to how people think and avoiding recomputing expressions. Assignment expressions can also occur in conditions like while loops, and have the type and value of the left operand after assignment.

Uploaded by

Mukesh Jain
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views2 pages

Assignment Operators and Expressions: Assignment Operator. Op Op

Assignment operators allow expressions like i+=2 to be written more concisely than i=i+2. Common binary operators like + have a corresponding assignment operator like +=. Using assignment operators makes code more readable by corresponding better to how people think and avoiding recomputing expressions. Assignment expressions can also occur in conditions like while loops, and have the type and value of the left operand after assignment.

Uploaded by

Mukesh Jain
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

Assignment Operators and Expressions Expressions such as

i=i+2

in which the variable on the left hand side is repeated immediately on the right, can be written in the compressed form
i += 2

The operator += is called an assignment operator. Most binary operators (operators like + that have a left and right operand) have a corresponding assignment operator op =, where op is one of
+* I

"

<< >>

If expr 1 and expr 2 are expressions, then

is equivalent to
expr1

= (expr 1 ) op (expr 2 )

except that expr1 is computed only once. Notice the parentheses around expr2:
X *= y + 1

means
X= X* (y + 1)

rather than As an example, the function bi tcount counts the number of 1-bits in its integer argument.
/* bitcount: count 1 bits in x */

int bitcount(unsigned x)
{ }

int b; for (b = 0; x I= 0; x >>= 1) if (X & 01) b++; return b;

Declaring the argument x to be unsigned ensures that when it is right-shifted, vacated bits will be filled with zeros, not sign bits, regardless of the machine the program is run on. Quite apart from conciseness, assignment operators have the advantage that they correspond better to the way people think. We say "add 2 to i" or
SECTION 2.11 CONDITIONAL EXPRESSIONS 51

"increment i by 2," not "take i, add 2, then put the result back in i." Thus the expression i += 2 is preferable to i = i+2. In addition, for a complicated expression like
yyval[yypv[p3+p4] + yypv[p1+p2]] += 2

the assignment operator makes the code easier to understand, since the reader doesn't have to check painstakingly that two long expressions are indeed the same, or to wonder why they're not. And an assignment operator may even help a compiler to produce efficient code. We have already seen that the assignment statement has a value and can occur in expressions; the most common example is
while ((c = getchar()) I= EOF)

The other assignment operators (+=, -=, etc.) can also occur in expressions, although this is less frequent. In all such expressions, the type of an assignment expression is the type of its left operand, and the value is the value after the assignment. Exercise 2-9. In a two's complement number system, x &.= ( x-1 ) deletes the

rightmost 1-bit in x. E

You might also like