सूचक अंकगणित C और C++ प्रोग्रामिंग में एक मूलभूत अवधारणा है। इसमें पॉइंटर्स पर ऑपरेशंस का प्रदर्शन करना शामिल है ताकि वे सरणी या मेमोरी ब्लॉकों के माध्यम से नेविगेट कर सकें।

सूचक Arithmetic की मूल बातें

C और C++ में, पॉइंटर्स मेमोरी पते की दुकान करते हैं। जब पॉइंटर्स पर अंकगणित प्रदर्शन करते हैं, तो कम्पाइलर स्वचालित रूप से डेटा के आकार के लिए पॉइंटर पॉइंट्स को टाइप करते हैं। उदाहरण के लिए, 1 को एक इंट पॉइंटर में जोड़ने से इंट के आकार से इसका पता बढ़ जाता है।

पॉइंटर गणना में आम गलतियाँ

एक आम गलती यह मानती है कि 1 को एक सूचक में जोड़ने से हमेशा 1 बाइट से पता बढ़ता है। वास्तव में, यह डेटा प्रकार के आकार से बढ़ता है। एक अन्य गलती दो पॉइंटर्स के बीच अंतर को गलत तरीके से बदल सकती है, जिससे गलत सरणी अनुक्रमण हो सकता है।

कैसे सही ढंग से गणना करने के लिए

सूचक पते की सही गणना करने के लिए, डेटा प्रकार के आकार पर विचार करें और पॉइंटर अंकगणित का सावधानीपूर्वक उपयोग करें। जब दो पॉइंटर्स के बीच की दूरी की गणना की जाती है, तो उनके पते को घटाएं और डेटा प्रकार के आकार से विभाजित करें:

]]दो पॉइंटर्स के बीच तत्वों की संख्या = (pointer2 - pointer1) / sizeof(*pointer1)

यह गणना दो बिंदुओं के बीच तत्वों की संख्या प्रदान करती है, न कि बाइट अंतर। हमेशा अनिर्धारित व्यवहार से बचने के लिए एक ही सरणी या मेमोरी ब्लॉक के भीतर पॉइंटर्स पॉइंट को सुनिश्चित करते हैं।