Questions

Can we add or subtract two pointers?

Can we add or subtract two pointers?

Pointers contain addresses. Adding two addresses makes no sense, because you have no idea what you would point to. Subtracting two addresses lets you compute the offset between these two addresses, which may be very useful in some situations.

Why we Cannot add pointers in C?

Pointer addition is forbidden in C++, you can only subtract two pointers. The reason for this is that subtracting two pointers gives a logically explainable result – the offset in memory between two pointers.

Can 2 pointers be added?

Pointers contain addresses. Adding two addresses makes no sense because there is no idea what it would point to. Subtracting two addresses lets you compute the offset between the two addresses. An array name acts like a pointer constant.

READ ALSO:   What causes matter/antimatter asymmetry?

What is the rule for subtracting two pointers?

When two pointers are subtracted, both must point to elements of the same array object or just one past the last element of the array object (C Standard, 6.5. 6 [ISO/IEC 9899:2011]); the result is the difference of the subscripts of the two array elements. Otherwise, the operation is undefined behavior.

Is pointer subtraction valid?

Pointer Subtraction It turns out you can subtract two pointers of the same type. The result is the distance (in array elements) between the two elements. This can result in negative values if p2 has a smaller address than p1. p2 and p1 need not point to valid elements in an array.

What math operations are allowed on pointers?

The only valid arithmetic operations applicable on pointers are: Addition of integer to a pointer. Subtraction of integer to a pointer. Subtracting two pointers of the same type.

Can you subtract from a pointer?

READ ALSO:   Can you ship prescription drugs from Canada to US?

and the answer is, yes. When you subtract two pointers, as long as they point into the same array, the result is the number of elements separating them. (When testing for equality or inequality, the two pointers do not have to point into the same array.)

Why is adding two pointers impossible?

Because pointers represent locations in the memory. Each pointer is the address of a block in the memory. Subtracting two pointers will give you the size of memory between them. Addition or any other mathematical operation on values of pointers has no meaning.

What is the difference between addition and subtraction of pointers?

Subtraction of pointers might give a valid address location within the range of addresses so it’s allowed. Addition of two pointers will add two addresses and might give an address which might be so large that it is outside the range of our 32 bit or 64 bit system of addresses in contiguous memory locations.

READ ALSO:   How much is a moon jellyfish worth?

Why addition of two pointers not supported in C or C++?

Why addition of two pointers not supported in c or c++. C or C++ throws an error. While it supports, Pointers contain addresses. Adding two addresses makes no sense, because you have no idea what you would point to. Subtracting two addresses lets you compute the offset between these two addresses, which may be very useful in some situations.

Is it possible to multiply two pointers?

Not only multiplying, even addition and division are also not allowed in pointers. The only operation you can do is subtraction, if both the pointers are of same type. The above operations ( +, /, ∗) are invalid.

What is the purpose of sub subtracting two addresses?

Subtracting two addresses lets you compute the offset between these two addresses, which may be very useful in some situations. Edit: To address the common wish for finding the mid consider this (purely as an example):