Wednesday, 15 June 2011

Can't understand small part of a C program involving pointers -


  int x = 5; Int y = 6; Int * p = & amp; x; * P = x + y; पी = & amp; y; * P = x + y; Printf ("% d,% d", x, y);  

मैं पहले 3 लाइनों को समझ सकता हूँ मुझे पता है कि int * p = & amp; x; का अर्थ है कि सूचक p x के स्मृति पते पर इंगित कर रहा है। लेकिन मैं कोड के अगले 4 लाइनों को नहीं समझ सकता। इस कोड के लिए आउटपुट है:

  11,17  

लेकिन मैं कैसे समझ नहीं पा रहा हूं? कोई मुझे इसकी व्याख्या कर सकता है।

एक सूचक एक चर है जिसके मूल्य का पता है एक अन्य चर, अर्थात्, स्मृति स्थान का प्रत्यक्ष पता

जब आप इस तरह से असाइन कर रहे हैं,

  int * p = & amp; x; // यह एक्स चर के पते पर इंगित करेगा।  

* p में किया गया कोई भी परिवर्तन, यह स्मृति को प्रभावित करेगा इसलिए जब तक आप इसे x के साथ एक्सेस कर रहे हैं, उसका मान है।

  * p = x + y; // यह बराबर x = x + y;  

फिर y भी इसे पसंद है।

अब x का मान 11 p = & amp; y;

  * p = x + y; // यह y = x + y के बराबर है;  

तो अब x में मान 11 और y मान 5 है। तो परिणाम 17 है।


No comments:

Post a Comment