Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to compare pointers in C/C++?
The pointers can be directly compared using relational operators. In this article, we will learn about the comparisons of the pointers with the help of examples.
Pointers Comparison in C and C++
In C/C++, we can directly compare the pointers using relational operators (==, !=, <, >, <=, >=). These operators are used to compare two variables, values, or pointers. It returns a Boolean true value when the comparison is correct otherwise, it is false.
The core syntaxes of C and C++ pointers are similar such as declaration, dereferencing, and pointer arithmetic. All of these are identical in behavior and still use * and & in the same way.
Example of C Pointers Comparison
In this example, we declare two integer pointers say (*p1 and *p2), and then randomly allocate these pointer memory addresses of 200 and 300 respectively. Then, we check the conditions p1 > p2 using an if-statement where address 200 is greater than 300 which results in false and else part printed.
#include<stdio.h>
int main()
{
int *p2;
int *p1;
p2 = (int *)300;
p1 = (int *)200;
if(p1 > p2) {
printf("P1 is greater than p2");
} else {
printf("P2 is greater than p1");
}
return 0;
}
The above code produces the following result:
P2 is greater than p1
Example of C++ Pointers Comparison
In this example, we declare three pointers say (*ptr1, *ptr2, and *ptr3) where ptr2 has different memory allocation. While taking a comparison of each pointer with others it returns the result in the form of a boolean value.
#include<iostream>
using namespace std;
int main() {
int a = 10, b = 20;
int *ptr1 = &a;
int *ptr2 = &b;
int *ptr3 = &a;
cout << "ptr1 == ptr2: " << (ptr1 == ptr2 ? "true" : "false") << endl;
cout << "ptr1 == ptr3: " << (ptr1 == ptr3 ? "true" : "false") << endl;
cout << "ptr1 != ptr2: " << (ptr1 != ptr2 ? "true" : "false") << endl;
if (ptr1 < ptr2)
cout << "ptr1 points to a lower address than ptr2" << endl;
else
cout << "ptr1 does not point to a lower address than ptr2" << endl;
return 0;
}
The above code produces the following result:
ptr1 == ptr2: false ptr1 == ptr3: true ptr1 != ptr2: true ptr1 points to a lower address than ptr2