Q39.Marks: +2.0UGC NET Paper 2: Computer Science and Application 26th June 2025 Shift 1
Only legal pointer operations:
A. pointer + number pointer
B. pointer - number number
C. pointer + pointer → pointer
D. pointer - pointer → pointer
E. pointer - pointer number
Choose the most appropriate answer from the options given below:
1.A, B, C Only
2.A, B, D Only
3.A, B Only
4.A, E Only✓ Correct
Solution
The correct answer is:Option 4) A, E Only
Key Rules of Pointer Arithmetic in C
Rule 1:pointer ± integer → pointer Adding or subtracting an integer from a pointer moves it by that many elements (scaled by sizeof(*pointer)).
Rule 2:pointer − pointer → integer (ptrdiff_t) Subtracting two pointers gives the number of elements between them, defined only when both pointers point into the same array (or one past its end).
Rule 3:pointer + pointer is illegal in C; there is no meaning for “adding two addresses.”
Interpreting the statements A–E
A. pointer + number → pointer — Legal. Matches Rule 1.
B. pointer − number → number — Illegal as written. In C, pointer − integer produces a pointer, not a number. (If this option had said “→ pointer,” it would be legal.)
C. pointer + pointer → pointer — Illegal. Adding two pointers is not allowed (violates Rule 3).
D. pointer − pointer → pointer — Illegal. Subtracting pointers yields an integer count, not a pointer (violates Rule 2).
E. pointer − pointer → number — Legal. Matches Rule 2; result type is typically ptrdiff_t.
Mini examples
int a[10];
int *p = &a[3];
int *q = &a[7];
p + 2; /* legal: pointer to a[5] */
q - 3; /* legal: pointer to a[4] */
q - p; /* legal: value 4 (of type ptrdiff_t) */
p + q; /* illegal */
p - 2.0; /* illegal: RHS must be integer, not double */
p - q; /* legal, but result is an integer, not a pointer */
Conclusion
Only statements that conform to C’s pointer arithmetic are A and E. Hence, the most appropriate answer is Option 4) A, E Only.