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

C/C++ में सरणी (Arrays) - पूर्ण गाइड

सरणी क्या है?

सरणी एक ही डेटा प्रकार के निश्चित संख्या में तत्वों का संग्रह है, जो सन्निकट मेमोरी स्थानों में संग्रहीत होते हैं।

घोषणा और आरंभीकरण

// घोषणा
data_type array_name[size];

// उदाहरण
float percentage[10];
int marks[5] = {85, 90, 78, 92, 88};
char name[] = "Hello";  // आकार स्वचालित: 6 (नल टर्मिनेटर सहित)

तत्वों तक पहुंच

  • सूचकांक 0 से शुरू होता है
  • array[index] सिंटैक्स का उपयोग करें
  • arr[0] = पहला तत्व, arr[n-1] = अंतिम तत्व

मेमोरी लेआउट

सरणी: float percentage[4] = {56.4, 99.0, 12.20, 67.2};

इंडेक्स:    0       1       2       3
मान:     56.4    99.0    12.20   67.2
पता:   1000    1004    1008    1012  (प्रत्येक float = 4 बाइट्स)

बुनियादी ऑपरेशन

1. सभी तत्व प्रिंट करें

#include <stdio.h>

int main() {
    float percentage[] = {56.4, 99.0, 12.20, 67.2};
    int n = sizeof(percentage) / sizeof(percentage[0]);
    
    printf("सभी मान:\n");
    for (int i = 0; i < n; i++) {
        printf("तत्व %d = %.2f\n", i+1, percentage[i]);
    }
    return 0;
}

2. विशिष्ट तत्व एक्सेस करें

float third = percentage[2];  // 12.20

3. तत्व संशोधित करें

percentage[2] = 12.22;  // तीसरा तत्व बदलें

पूर्ण उदाहरण

#include <stdio.h>

int main() {
    float percentage[4];
    
    // इनपुट
    for (int i = 0; i < 4; i++) {
        printf("%dवें छात्र का प्रतिशत: ", i+1);
        scanf("%f", &percentage[i]);
    }
    
    // आउटपुट
    printf("\nसभी प्रतिशत:\n");
    for (int i = 0; i < 4; i++) {
        printf("छात्र %d: %.2f%%\n", i+1, percentage[i]);
    }
    
    // अधिकतम खोजें
    float max = percentage[0];
    for (int i = 1; i < 4; i++)
        if (percentage[i] > max) max = percentage[i];
    printf("अधिकतम: %.2f%%\n", max);
    
    return 0;
}

बहुआयामी सरणी

// 2D सरणी (मैट्रिक्स)
int matrix[3][4] = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

// एक्सेस
matrix[1][2] = 7;  // दूसरी पंक्ति, तीसरा स्तंभ

// ट्रैवर्सल
for (int i = 0; i < 3; i++)
    for (int j = 0; j < 4; j++)
        printf("%d ", matrix[i][j]);

महत्वपूर्ण बिंदु

  • आकार निश्चित होता है संकलन समय पर (C99 से पहले VLA को छोड़कर)
  • सीमा जांच नहीं - सीमा से बाहर एक्सेस अपरिभाषित व्यवहार
  • सरणी नाम पहले तत्व के पते में क्षय होता है
  • sizeof(array) केवल घोषणा स्कोप में काम करता है, फ़ंक्शन पैरामीटर में नहीं

सामान्य त्रुटियां

// गलत: आकार के साथ वापसी
int* create_array() {
    int arr[10];
    return arr;  // अपरिभाषित व्यवहार! स्टैक मेमोरी
}

// सही: डायनामिक आवंटन
int* create_array() {
    return malloc(10 * sizeof(int));
}
  1. C/C++ में मल्टीडायमेंशनल ऐरे का इनिशियलाइज़ेशन C/C++ में मल्टीडायमेंशनल ऐरे का इनिशियलाइज़ेशन

    मल्टीडायमेंशनल ऐरे में, ऐरे का डायमेंशन 1 से अधिक होना चाहिए। निम्नलिखित डायग्राम 3 x 3 x 3 डायमेंशन वाले मल्टीडायमेंशनल ऐरे के लिए मेमोरी आवंटन रणनीति दिखाता है। यह मल्टीडायमेंशनल ऐरे को इनिशियलाइज़ करने के लिए एक C++ प्रोग्राम है। एल्गोरिदम Begin मल्टीडायमेंशनल ऐरे के एलिमेंट्स इनिशियलाइज

  1. - C/C++ में कोर को कैसे डीबग करें?

    एक प्रोसेस कोर डंप करता है जब ऑपरेटिंग सिस्टम द्वारा प्रोग्राम में खराबी के कारण इसे समाप्त कर दिया जाता है। इसका सबसे सामान्य कारण यह है कि प्रोग्राम ने एक अमान्य पॉइंटर मान जैसे NULL या उसकी मेमोरी क्षेत्र से बाहर के किसी मान को एक्सेस किया। उस प्रक्रिया के हिस्से के रूप में, ऑपरेटिंग सिस्टम हमें

  1. C++ में सरणी की बिटोनिसिटी की जांच करें C++ में सरणी की बिटोनिसिटी की जांच करें

    N पूर्णांकों की एक सरणी arr[N] दी गई है, कार्य यह जांचना है कि दी गई सरणी बिटोनिक है या नहीं। यदि दी गई सरणी बिटोनिक है तो हां यह एक बिटोनिक सरणी है प्रिंट करें, अन्यथा नहीं यह बिटोनिक सरणी नहीं है प्रिंट करें। एक बिटोनिक सरणी वह है जब सरणी पहले सख्ती से बढ़ते क्रम में होती है और फिर सख्ती से घटते