Question

1.
2.
3.
4.
Answer (Detailed Solution Below)

Option 3 : 10

Advertisement

Detailed Solution

सही उत्तर 10 है।

Key Points
Helpful?
PrepSnapprepsnap.in • Part -A

Question:

What is the output of the following C code? int a[5] = {10, 20, 30, 40, 50}; int *p = a + 2; printf("%d", *(p+1) - *p); / निम्नलिखित C कोड का आउटपुट क्या है? int a[5] = {10, 20, 30, 40, 50}; int *p = a + 2; printf("%d", *(p+1) - *p);

1.
20
2.
30
3.
10
4.
garbage value (undefined behaviour) / कचरा मान (अपरिभाषित व्यवहार)

Correct Answer: 10

p points to a[2] (30), p+1 points to a[3] (40). So *(p+1) - *p = 40 - 30 = 10. Pointer arithmetic steps by sizeof(int), so no undefined behaviour occurs here. / p, a[2] (30) की ओर इशारा करता है, p+1, a[3] (40) की ओर। अतः *(p+1) - *p = 40 - 30 = 10। पॉइंटर अंकगणित sizeof(int) के चरणों में बढ़ता है, अतः यहाँ कोई अपरिभाषित व्यवहार नहीं है।

Downloaded from PrepSnap (prepsnap.in)