You do not have to memorize all the content of this page. Most details are only provided to serve as a later
reference in case you need it.
Assignment (=) Operator
The assignment operator assigns a value to a variable, such as
a = 5;
This statement assigns the integer value 5 to the variable a. The part at the left of the assignment operator (=) is
known as the lvalue (left value) and the right one as the rvalue (right value). The lvalue has to be a variable
whereas the rvalue can be either a constant, a variable, the result of an operation or any combination of these.
Similarly,
a = b;
This statement assigns to variable a (the lvalue) the value contained in variable b (the rvalue). The value that was stored until this moment in a is not considered at all in this operation, and in fact that value is lost.
Consider also that we are only assigning the value of b to a at the moment of the assignment operation. Therefore a later change of b will not affect the new value of a. For example, let us have a look at the following code - a:4 b:7
#include<iostream>
using namespace std;
int main ()
{
int a, b; // declaration of integer variable
a = 10; // a:10, b:?
b = 4; // a:10, b:4
a = b; // a:4, b:4
b = 7; // a:4, b:7
cout << " a:" << a <<endl;
cout << " b:" << b <<endl;
return 0;
}
The output is: a : 4
b : 7
This code will give us as result that the value contained in a is 4 and the one contained in b is 7.
Arithmetic operators ( +, -, *, /, % )
The five arithmetical operations supported by the C++ language are:
+ , addition
- , subtraction
* , multiplication
/ , division
% , modular division
Operations of addition, subtraction, multiplication and division literally correspond with their respective
mathematical operators. The only one that you might not be so used to see is modulo; whose operator is the
percentage sign (%). Modulo is the operation that gives the remainder of a division of two values. For example, if we write:
a = 11 % 3;
the variable a will contain the value 2 , since 2 is the remainder from dividing 11 between 3.
Compound assignment (+=, -=, *=, /=, %=, &=, ^=, |=)
When we want to modify the value of a variable by performing an operation on the value currently stored in that variable we can use compound assignment operators:
expression is equivalent to
value + = increase; value = value + increase;
a = 5; a = a 5;
a /= b; a = a / b;
price *= units + 1; price = price * (units + 1);
and the same for all other operators. For example:
#include<iostream>
using namespace std;
int main ()
{
int a , b=3;
a = b;
a+=2; // equivalent to a=a+2
using namespace std;
int main ()
{
int a , b=3;
a = b;
a+=2; // equivalent to a=a+2
cout << " a " << a <<endl;
return 0;
}
The output is: a = 5
Shortening even more some expressions, the increase operator (++) and the decrease operator () increase or reduce by one the value stored in a variable. They are equivalent to +=1 and to =1, respectively. Thus:
c++;
c+=1;
c=c+1;
are all equivalent in its functionality: the three of them increase by one the value of c.
Logical operators ( !, &&, || )
The Operator is the C++ operator to perform the Boolean operation NOT, it has only one operand, located at its right, and the only thing that it does is to inverse the value of it, producing false if its operand is true and true if its operand is false. Basically, it returns the opposite Boolean value of evaluating its operand. For example:
! (5 == 5) // evaluates to false because the expression at its right (5 == 5) is true.
! (6 <= 4) // evaluates to true because (6 <= 4) would be false.
true // evaluates to false
false // evaluates to true.
The logical operators && and || are used when evaluating two expressions to obtain a single relational result. The operator && corresponds with Boolean logical operation AND. This operation results true if both its two operands are true, and false otherwise. The following panel shows the result of operator && evaluating the expression a && b:
a b a && b a | | b
true true true true
true false false true
false true false true
false false false false
The operator || corresponds with Boolean logical operation OR. This operation results true if either one of its two operands is true, thus being false only when both operands are false themselves.
In terms of Hexadecimal conversion Bitwise operator can be written as
bit 1 | bit 2 | OR (|| ) |
AND ( & ) |
XOR ( ^ ) |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 0 |
No comments:
Post a Comment