The order of operands of logical operators &&, || are important in C/C++.
In mathematics, logical AND, OR, etc… operations are commutative. The result will not change even if we swap RHS and LHS of the operator.
In C/C++ (may be in other languages as well) even though these operators are commutative, their order is critical. For example see the following code,
The first part pTemp will be evaluated against NULL and followed by pTemp->Next. If pTemp->Next is placed first, the pointer pTemp will be dereferenced and there will be runtime error when pTemp is NULL.
It is mandatory to follow the order. Infact, it helps in generating efficient code. When the pointer pTemp is NULL, the second part will not be evaluated since the outcome of AND (&&) expression is guaranteed to be 0.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Evaluation order of operands
- Operators in C | Set 2 (Relational and Logical Operators)
- What are the differences between bitwise and logical AND operators in C/C++?
- Written version of Logical operators in C++
- Operands for sizeof operator
- Code Optimization Technique (logical AND and logical OR)
- Operators in C | Set 1 (Arithmetic Operators)
- Logical Not ! operator in C with Examples
- # and ## Operators in C
- Operators in C / C++
- unordered_set operators in C++ STL
- Assignment Operators in C/C++
- C | Operators | Question 27
- C | Operators | Question 2
- Bitwise Operators in C/C++
- C | Operators | Question 3
- Unary operators in C/C++
- C | Operators | Question 16
- C | Operators | Question 17
- C | Operators | Question 18