"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > C में पूर्णांक सूचक बढ़ने से 4 बाइट्स की वृद्धि क्यों होती है?

C में पूर्णांक सूचक बढ़ने से 4 बाइट्स की वृद्धि क्यों होती है?

2025-02-23 को पोस्ट किया गया
ब्राउज़ करें:642

] एक 4-बाइट वृद्धि में, अपेक्षित 1-बाइट वृद्धि के बजाय। इस विसंगति ने कई प्रोग्रामर को हैरान कर दिया है, जैसे कि प्रश्न:

Why Does Incrementing an Integer Pointer in C Increase by 4 Bytes?

] प्रत्येक int चर मेमोरी के 4 बाइट्स पर कब्जा कर लेता है, इसलिए एक इंट पॉइंटर को बढ़ाने से पॉइंटर को अगले इंट में ले जाता है, जो मेमोरी में 4 बाइट्स दूर स्थित है। &&&] int a = 1, *ptr; ptr = & a; प्रिंटफ ("%p \ n", ptr); पीटीआर; printf ("%p \ n", ptr); 0xbf8d63b9

वास्तविक आउटपुट:

0xbf8d63bc

आउटपुट में अंतर 4-बाइट वृद्धि के कारण है। जबकि अपेक्षित आउटपुट 1 बाइट की वृद्धि को दर्शाता है, वास्तविक आउटपुट 4-बाइट जंप को प्रदर्शित करता है, जिससे मेमोरी पते में एक ध्यान देने योग्य छलांग लगती है। &&& &]

Q: कैसे 4 बाइट्स पर जाएँ एक? फिर, आप int के बाइट्स के माध्यम से नेविगेट करने के लिए चार पॉइंटर को बढ़ा सकते हैं। int* p = & i; char* c = (char*) p; char x = c [1]; // एक इंट

में एक बाइट, इस उदाहरण में, int चर का पहला बाइट i को C [1] अभिव्यक्ति का उपयोग करके एक्सेस किया गया है। आप int के भीतर बाद के बाइट्स तक पहुंचने के लिए C पॉइंटर को बढ़ा सकते हैं। इंट पॉइंटर्स के लिए 4-बाइट वेतन वृद्धि के पीछे के कारणों को समझकर, आप सामान्य नुकसान को रोक सकते हैं और अधिक कुशल कोड लिख सकते हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3