Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C/C++ में पॉइंटर अंकगणित

पॉइंटर अंकगणित का उपयोग C भाषा में जोड़, घटाव, इन्क्रीमेंट आदि जैसे अंकगणितीय संचालन को लागू करने के लिए किया जाता है। चार पॉइंटर अंकगणित हैं जैसे जोड़, घटाव, इन्क्रीमेंट और डिक्रीमेंट। 32-बिट मशीन में, यह मान को 2 से इन्क्रीमेंट या डिक्रीमेंट करता है और यह 2 * नंबर जोड़ या घटा देगा। 64-बिट मशीन में, यह मान को 4 से इन्क्रीमेंट या डिक्रीमेंट करता है और यह 4 * नंबर जोड़ या घटा देगा।

यहां C भाषा में पॉइंटर अंकगणित का एक उदाहरण है:

उदाहरण

#include <stdio.h>

int main() {
   int val = 28;
   int *pt;
   pt = &val;
   printf("पॉइंटर का पता: %p\n", (void*)pt);
   pt = pt + 5;
   printf("पॉइंटर में जोड़: %p\n", (void*)pt);
   pt = pt - 5;
   printf("पॉइंटर से घटाव: %p\n", (void*)pt);
   pt = pt + 1;
   printf("पॉइंटर में इन्क्रीमेंट: %p\n", (void*)pt);
   pt = pt - 1;
   printf("पॉइंटर में डिक्रीमेंट: %p\n", (void*)pt);
   return 0;
}

आउटपुट

पॉइंटर का पता: 0x7ffd1234567c
पॉइंटर में जोड़: 0x7ffd12345690
पॉइंटर से घटाव: 0x7ffd1234567c
पॉइंटर में इन्क्रीमेंट: 0x7ffd12345680
पॉइंटर में डिक्रीमेंट: 0x7ffd1234567c

उपरोक्त प्रोग्राम में, अंकगणितीय संचालन (जोड़, घटाव आदि) पॉइंटर वेरिएबल *pt पर लागू किए जाते हैं।

महत्वपूर्ण सुधार: मूल कोड में %u फॉर्मेट स्पेसिफायर का उपयोग किया गया था जो पॉइंटर्स के लिए गलत है। सही स्पेसिफायर %p है और पॉइंटर को (void*) में कास्ट करना चाहिए।

पॉइंटर अंकगणित के नियम

  • पॉइंटर + इंटीजर = पॉइंटर (पॉइंटर टाइप के आकार से स्केल्ड)
  • पॉइंटर - इंटीजर = पॉइंटर
  • पॉइंटर - पॉइंटर = ptrdiff_t (इंटीजर, तत्वों की संख्या)
  • पॉइंटर + पॉइंटर = अवैध
  • इन्क्रीमेंट/डिक्रीमेंट अगले/पिछले तत्व पर जाता है
  • केवल समान ऐरे/ऑब्जेक्ट के भीतर के पॉइंटर्स पर मान्य

उदाहरण: ऐरे ट्रैवर्सल

int arr[] = {10, 20, 30, 40, 50};
int *p = arr;
for (int i = 0; i < 5; i++) {
   printf("%d ", *p);
   p++;  // अगले इंटीजर पर जाता है
}
  1. - C/C++ में putwchar() फंक्शन

    इस लेख में हम C++ STL में putwchar() फंक्शन के कार्य, सिंटैक्स और उदाहरणों पर चर्चा करेंगे। putwchar() क्या है? putwchar() फंक्शन C++ STL में एक इनबिल्ट फंक्शन है, जो हेडर फाइल में परिभाषित है। putwchar() फंक्शन का उपयोग स्टैंडर्ड आउटपुट डिवाइस पर वाइड कैरेक्टर लिखने के लिए किया जाता है। यह फंक्शन

  1. - C/C++ में memcpy() फंक्शन

    इस लेख में हम C++ STL में memcpy() फंक्शन के कार्य, सिंटैक्स और उदाहरणों पर चर्चा करेंगे। memcpy() क्या है? memcpy() फंक्शन C++ STL में एक इनबिल्ट फंक्शन है, जो हेडर फाइल में परिभाषित है। memcpy() फंक्शन का उपयोग मेमोरी के ब्लॉक्स को कॉपी करने के लिए किया जाता है। इस फंक्शन का उपयोग एक मेमोरी लोकेश

  1. C/C++ में AA ट्रीज C/C++ में AA ट्रीज

    कंप्यूटर साइंस में AA ट्री को संतुलित ट्री के एक रूप के रूप में परिभाषित किया गया है जिसे क्रमबद्ध डेटा को कुशलतापूर्वक स्टोर और पुनर्प्राप्त करने के लिए लागू किया जाता है। AA ट्रीज को रेड-ब्लैक ट्री के एक रूपांतर के रूप में माना जाता है, एक प्रकार का बाइनरी सर्च ट्री जो प्रविष्टियों के कुशल जोड़ और