Why Subtraction is allowed? Two addresses can be subtracted because the memory between the two addresses will be valid memory.
Let’s assume memory Ptr_1 and ptr_2 valid addresses. It is obvious that memory between these two addresses is valid.
Pointer ptr_1 is pointing to 0x1cb0010 memory location and ptr_2 is pointing to 0x1cb0030 memory location. If we subract ptr_1 from ptr_2, then the Memory region will lie in between these two location which is obviously a valid memory location.
Output: ptr_1: 0x1cb0010 ptr_2: 0x1cb0030 Difference: 8
Why addition, Multiplication, division or modulus is not allowed??
If we perform addition, multiplication, division or modulus on ptr_1 and ptr_2, then the resultant address may or may not be a valid address. That can be out of range or invalid address. This is the reason compiler doesn’t allow these operations on valid addresses.
Output: prog.c: In function 'main': prog.c:8:60: error: invalid operands to binary + (have 'int *' and 'int *') printf("addition:%lu multipicaion:%lu division:%lu\n", ptr_2+ptr_1, ptr_2*ptr_1, ptr_2/ptr_1);
- Dividing a Large file into Separate Modules in C/C++, Java and Python
- C program to store Student records as Structures and Sort them by Name
- Similarities and Differences between Ruby and C language
- Program to copy the contents of one array into another in the reverse order
- Interesting facts about C Language
- Program to Reverse a String using Pointers
- Difference between Structure and Array in C
- Structured Programming Approach with Advantages and Disadvantages
- Commonly used String functions in C/C++ with Examples
- Program to check if two strings are same or not
- putchar() function in C
- Difference between C and C++
- Code Optimization Technique (logical AND and logical OR)
- Difference between C and Python
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.