c - What is the flaw in the logic -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 1 उत्तर
मैं वर्तमान में पॉइंटर्स के बारे में सीख रहा हूं और सी में सरणी। निम्नलिखित प्रश्न वाकई मुझे दिनों के लिए गुस्सा दिलाना कर रहे थे। कृपया स्पष्ट करें।
मान लीजिए मैं इस तरह एक पूर्णांक सरणी की घोषणा करता हूं:
int a [] = {1,2,3,4,5} < / Pre>
हम जानते हैं कि सरणी का आधार पता सरणी के पहले तत्व के सूचक है। इसलिए यदि हम कमांड निष्पादित करने का प्रयास करते हैं:
printf ("% u", a);
आधार पता यानी
1 का पता मुद्रित किया जाएगा। अब अगर हम निम्नलिखित कथन निष्पादित करने का प्रयास करते हैं:
printf ("% u", & amp; a;);
तब
और एक संकेतक के लिए एक संकेतक नहीं होगा और उस चर के पते को प्रिंट करना चाहिए जिसमें मूल तत्व का पता शामिल है पूर्णांक सरणी? इसके बजाय मुझे जो मिलता है वह
a और
& amp; a के समान मान होता है।
दोष कहाँ है? कृपया इसे समझाओ।
एरे संकेत नहीं हैं: < एचआर>
-
int arr [10] :
-
उपयोग की गई स्मृति की मात्रा
sizeof (int) * है 10 बाइट्स
arr और
और arr के मूल्य जरूरी समान हैं <
arr एक मान्य स्मृति पते को इंगित करता है, लेकिन किसी अन्य स्मृति पते को इंगित करने के लिए सेट नहीं किया जा सकता
-
int * ptr = malloc (sizeof (int) * 10) :
-
उपयोग की गई स्मृति की मात्रा
sizeof (int *) + sizeof (int) * 10 बाइट्स
ptr के मान और
& amp; ptr आवश्यक रूप से समान नहीं हैं (वास्तव में, वे अधिकतर भिन्न हैं)
ptr को सेट किया जा सकता है दोनों वैध और अमान्य मेमोरी पतों को इंगित करें, जितनी बार आप करेंगे
-
-
-
Comments
Post a Comment