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

C में ऐरे और पॉइंटर्स के बीच अंतर


C में ऐरे का उपयोग समान प्रकार के तत्वों को संग्रहीत करने के लिए किया जाता है जबकि पॉइंटर्स एड्रेस वेरिएबल्स होते हैं जो किसी वेरिएबल का पता संग्रहीत करते हैं। अब ऐरे वेरिएबल का भी एक एड्रेस होता है जिसे एक पॉइंटर द्वारा इंगित किया जा सकता है और ऐरे को पॉइंटर का उपयोग करके नेविगेट किया जा सकता है। ऐरे के लिए पॉइंटर का उपयोग करने का लाभ दोहरा है: पहला, हम डायनामिक रूप से आवंटित ऐरे के पते को पॉइंटर में संग्रहीत करते हैं, और दूसरा, ऐरे को एक फंक्शन में पास करने के लिए। ऐरे और ऐरे के लिए पॉइंटर के उपयोग में निम्नलिखित अंतर हैं।

  • sizeof() ऑपरेटर ऐरे के मामले में ऐरे का आकार प्रिंट करता है और पॉइंटर के मामले में int का आकार प्रिंट करता है।

  • असाइनमेंट (assignment) ऐरे वेरिएबल को किसी अन्य वेरिएबल का पता असाइन नहीं किया जा सकता लेकिन पॉइंटर ले सकता है।

  • पहला मान (first value) पहला इंडेक्स किया गया मान पॉइंटर के मान के समान होता है। उदाहरण के लिए, array[0] == *p।

  • इटरेशन (iteration) ऐरे तत्वों को इंडेक्स का उपयोग करके [] के साथ नेविगेट किया जा सकता है, पॉइंटर पॉइंटर अंकगणित का उपयोग करके ऐरे तत्वों तक पहुंच दे सकता है। उदाहरण के लिए, array[2] == *(p+2)।

उदाहरण (C)

#include <stdio.h>

void printElement(char* q, int index) {
    printf("Element at index(%d) is: %c\n", index, *(q + index));
}

int main() {
    char arr[] = {'A', 'B', 'C'};
    char* p = arr;
    printf("Size of arr[]: %d\n", sizeof(arr));
    printf("Size of p: %d\n", sizeof(p));
    printf("First element using arr is: %c\n", arr[0]);
    printf("First element using p is: %c\n", *p);
    printf("Second element using arr is: %c\n", arr[1]);
    printf("Second element using p is: %c\n", *(p + 1));
    printElement(p, 2);
    return 0;
}

आउटपुट

Size of arr[]: 3
Size of p: 8
First element using arr is: A
First element using p is: A
Second element using arr is: B
Second element using p is: B
Element at index(2) is: C
  1. - C# में लिस्ट और ऐरे में क्या अंतर है?

    एक ऐरे एक ही प्रकार के एलिमेंट्स के निश्चित आकार के अनुक्रमिक संग्रह को स्टोर करता है, जबकि लिस्ट एक जेनेरिक कलेक्शन है।लिस्ट को परिभाषित करने के लिए:List myList = new List();लिस्ट में एलिमेंट्स सेट करने के लिए, आपको Add मेथड का उपयोग करना होगा:myList.Add(Audi); myList.Add(BMW); myList.Add(Chevrolet

  1. - जावा में Packages और Interfaces में अंतर

    इस पोस्ट में, हम जावा में पैकेजेस और इंटरफेसेस के बीच अंतर को समझेंगे।Packagesयह एक साथ क्लासेस और/या इंटरफेसेस का एक समूह है।इसे Package कीवर्ड का उपयोग करके बनाया जा सकता है।इसे इम्पोर्ट किया जा सकता है।इसे import कीवर्ड का उपयोग करके किया जा सकता है।उदाहरणpackage package_name; public class class_

  1. - Go और Java में अंतर

    GoGo एक प्रक्रियात्मक प्रोग्रामिंग भाषा है। प्रोग्राम पैकेज का उपयोग करके असेंबल किए जाते हैं। यह डायनामिक भाषाओं के समान पैटर्न को अपनाने वाले वातावरण का समर्थन करता है।JavaJava एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है। Java काफी तेज, विश्वसनीय और सुरक्षित है। यह सबसे व्यापक रूप से उपयोग की जाने व