C Programming में Array क्या है और उसके प्रकारों की संपूर्ण जानकारी हिंदी में

What is Array in C in Hindi - C में Array क्या है

C programming में Array एक ही प्रकार के Data Type वाले Elements का एक Collections है जिसे Contiguous  memory locations में Store किया जाता है. 

Array में प्रत्येक Element को एक Index के द्वारा Access किया जाता है इसमें पहले Element का Index 0 है, दूसरे Element का Index 1 है, तीसरे Element का Index 2 है और 
उसी प्रकार अन्य Element का Index है
अतः इन Element को Access करने के लिए उससे सम्बंधित Index Value का Use किया जाता है. 

Arrays आपको एक Single Name के अन्तर्गत कई Values को Store करने और उसमें बदलाव लाने की सुविधा देता है जिससे संबन्धित Data को Access करना और Organize करना सरल हो जाता है।

Example:
int marks[5];


ऊपर के Example में int, Data Type है marks Array का नाम है तथा [5], Array की size है तथा 0 से 5, Array के Element को Access करने के लिए दिया गया Index Value है जैसे हम 45 element को Access करना चाहते है तो हम marks[2] का Use करेंगे और 56 के लिए marks[4]

C में Array से सम्बंधित कुछ अन्य बाते 

1) Array Derived data type है जिसका निर्माण Primitive data types की सहायता से किया जाता है

2) Array एक Variable है जिसमें एक ही प्रकार के Data type वाले एक से अधिक Values को Continues memory location में एक ही नाम से store किया जाता है

3) Array में असमान प्रकार के Data को Store नही कर सकते

4)प्रत्येक Value के लिए अलग से Variable declare करने के बजाय Array का Use करके कई Values को एक Variable में Store किया जा सकता है

हमे Array की जरुरत क्यों है?

इसे समझने के लिए हम एक example लेते है मान लीजिये हमे 5 Students के Marks store करने है तब तो हमे इन Marks को Store करने के लिए 5 Variables की आवश्यकता होगी 

लेकिन यदि हम 100 Students के Marks को Store करना चाहते है तब तो 100 Variables को Declare करना मुश्किल है इसी के समाधान के लिए हमे Array की जरुरत पड़ती हैं

Types of Array in C - C मे Array के प्रकार

Arrays,  Dimension के आधार पर दो प्रकार के होते है
1) Single Dimensional Array
2) Multi Dimensional Array

Single Dimensional /One Dimensional Array

C में Single Dimensional Array अधिकतर Use होने वाला Array है जो Array का सबसे साधारण रूप है इसमें Array के Elements का एक Single Row या Sequence होता है

एक Single Dimensional Array एक ही प्रकार के Data type वाले Elements का Collection होता है जिसे contiguous memory locations में एक के बाद एक Store किए जाते है।

Array में प्रत्येक Element को एक Single index value के द्वारा Access किया जाता है यह Index value पहले Element के लिए 0, दूसरे Element के लिए 1, तीसरे Element के लिए 2 और वैसे ही अन्य के लिए होते है

Single Dimensional/One Dimensional Array को Declare करना

C में Single Dimensional Array को Declare करने के लिए Array का नाम, उसके Elements के प्रकार और उसके Size को देना होता है

Syntax
data_type array_name [size];

ऊपर Syntax में
data_type:
यह Array block में store होने वाले Data के Type को बताता है

array_name:
यह Array के नाम को संदर्भित करता है

[size]:
इसमें Elements की संख्या जिसे हम Array में रख सकते है इसके size के आधार पर निर्धारित होता है

Example:
int marks[5];

Single Dimensional/One Dimensional Array को Initialize करना

यदि हमे Array की प्रारंभिक Values पता है तो हम Array को Declare करते समय ही उसे Initialize कर सकते हैं

Syntax:
data_type array_name[array_size] = {element 1, element2, element3,....}

Example:
int marks [5] ={67,54,78,77,86};

ऊपर के Example में marks नामक Array का निर्माण किया गया है जिसका Data Type int होने से यह 2 bytes लेगा तथा Array की Size 5 होने के कारण यह Memory में 10 bytes स्थान  Reserve करेगा 

प्रत्येक Student के marks को निम्न प्रकार से Access किया जा सकता है
marks [0] = 67
marks [1] = 54
marks [2] = 78
marks [3] = 77
marks [4] = 86

Single Dimensional/One Dimensional Array के Elements को Access करना 

C में single-dimensional array के Elements को Access करना सरल है 
Array में प्रत्येक Element को Square bracket [] के भीतर उसके Index का उपयोग करके Access किया जाता है 

Syntax:
array_name[index];

Example:
marks[i];

Program for One -Dimensional Array
#include<stdio.h>
int main() 
{
    int n;
    printf("Enter the value of n: ");
    scanf("%d", &n);
    int marks[n];
    printf("Enter the marks of students:\n");
   for (int i = 0; i < n; i++) 
      {
       printf("Marks %d: ", i );
      scanf("%d", &marks[i]);
      }  
    printf(" Student's Marks are:\n");
    for (int i = 0; i < n; i++) 
    {
        printf("%d ", marks[i]);
    }
    printf("\n");
    return 0;
}

Output:
Enter the value of n: 5
Enter the marks of students:
Marks 0: 67
Marks 1: 54
Marks 2: 78
Marks 3: 77
Marks 4: 86
 Student's Marks are:
67 54 78 77 86 

Explanations:

1) सबसे पहले हमने अपने Program में Input-output Header file (`stdio.h`) को शामिल किया है ताकि हम उसमें उपस्थित functions  `printf` और `scanf` का Use कर सके

2) Program `main()` function से Execute होना शुरू होगा

3) हमने 'n' नामक एक Variable Declare किया है जिसमे User द्वारा Enter किया गया Array की Value को Store किया जायेगा

4) उसके बाद printf() function की मदद से User को Array की Size Enter करने की अनुमति देते है जिसे scanf() function के द्वारा Read करके  'n' Variable में Store कर दिया जाता है

5) अब हम marks नाम से एक Integer Array Declare करते है जिसका Size User द्वारा Entered किया गया Value है जिसे 'n' Variable में Store किया गया है

6) अब हम printf() function की मदद से User से Students के marks Enter करवाते है 

इस कार्य के लिए for loop का Use किया गया है जो उस समय तक  ' चलते रहते है जब तक 'i' की Value,  'n' की Value से छोटी रहेगी 

अब loop के Repeat होने के दौरान लगातार User से Students के लिए marks के प्रत्येक Value को , printf() function की मदद से Enter करवाए जाते है 

और scanf() function की मदद से marks की Values को Read करके marks नामक Array में Store कर दिए जाते है

7) अब marks नामक Array में Store किए गए प्रत्येक Student के mark को Display करने के लिए एक और for loop चलाते है इसके लिए loop के अंदर printf() function का Use करते है

8) अब returns 0 Statement यह प्रदर्शित करता है कि Program का Execution सफलतापूर्वक समाप्त हो गया है

Multi Dimensional Array

Multi Dimensional Array एक ऐसा Array है जिसमे एक से अधिक Dimension होते है इसमें एक ही प्रकार के Data को Tabular form में Store किया जाता है

जब हम ऐसे जटिल Data को Store करना चाहते है जिसके के लिए Rows और Columns की आवश्यकता होती है उस स्थिति में हमे Multi Dimensional Array का Use करना होता है क्योंकि Single Dimensional Array में इस प्रकार से Data Store नही कर सकते 

अतः C में Multi Dimensional Array  एक शक्तिशाली Data structure है जो हमे कई Dimension में Data को organize और manipulate करने की अनुमति देता है 

Multi Dimensional Array, Two Dimensional Array या Three Dimensional Array या Four Dimensional Array हो सकते है या उससे ज्यादा भी हो सकते है

सबसे ज्यादा प्रसिद्ध Array Two Dimensional Array है जिसका प्रयोग Table के रूप में Data Store करने के लिए किया जाता है अतः हम उसी के बारे में विस्तार से सीखेंगे

Two-dimensional Arrays को Declare करना

Two-dimensional Arrays को Declare को निम्न प्रकार से Declare कर सकते हैं।

Syntax:
datatype array_name [row_size][column_size];

Example:
int my_table [4][3];

ऊपर Two-dimensional Array Declare करते ही 4 Rows और 3 Columns के रूप में  Complier द्वारा 12 memory locations आरक्षित कर दिया जाता है जिसमें प्रत्येक location int, Data Type के कारण 2 byte का स्थान लेगा

Two dimensional Arrays को Initialize करना

हम Declaration के दौरान Two dimensional Arrays को निम्न प्रकार से Initialize कर सकते हैं

Example:
int my_table [3][3] = {
    {5, 6, 3},
    {8, 2, 9},
    {6, 4, 2}
};

ऊपर 3 Rows और 3 Columns का my_table नाम से Two Dimensional Array का निर्माण किया गया है जिसमे Row तथा Column Index दिया गया है इन्ही Index का Use करके हम Array के कोई भी Elements को निम्न प्रकार से Access कर सकते है जैसे हम यदि 6 Element को Access करना चाहते है तो

my_table[0][1] = 6;
का Use करेंगे जहां 0 Row Index और 1 Column Index को बताता है
Program for Two Dimensional Array
#include<stdio.h> 
int main() 
{
 int my_table[3][3];
  for (int i = 0; i < 3; i++)
    {
    for (int j = 0; j < 3; j++) 
      {        
      printf("Entermy_table[%d][%d]:",i,j);   
      scanf("%d", &my_table[i][j]);     
      }
    }
 printf("\n Now printing the each element:\n");
  for (int i = 0; i < 3; i++) 
    {
      printf("\n");
    for (int j = 0; j < 3; j++) 
       {       
         printf("%d ",my_table[i][j]);

        }
     }
    return 0;
}
 

Output:
Enter my_table[0][0]:5 
Enter my_table[0][1]: 6
Enter my_table[0][2]:3 
Enter my_table[1][0]:8
Enter my_table[1][1]:2 
Enter my_table[1][2]:9
Enter my_table[2][0]:6 
Enter my_table[2][1]:4
Enter my_table[2][2]:2 


Now printing the each element:
5 6 3 
8 2 9 
6 4 2 

Explanation:
1) सबसे पहले 
 int my_table[3][3]; Statement का Use करके 
एक 2D array `my_table` नाम से Declare किया गया है जिसका dimensions 3x3 है अर्थात इसमें 3 Rows और 3 Columns है

2) for (int i = 0; i < 3; i++) {
       for (int j = 0; j < 3; j++) {
           printf("Enter my_table[%d][%d]:", i, j);
           scanf("%d", &my_table[i][j]);
       }
   }
ऊपर के nested loop का Use करके User से my_table Array के लिए 3x3 my_table हेतु printf() function की सहायता से प्रत्येक Element के लिए Value Input कराने तथा Input किए गए Value को scanf() function के सहायता से my_table Array में Store कराने हेतु किया जाता है

3)
   printf("\n Now printing the each element:\n");
   for (int i = 0; i < 3; i++) {
       printf("\n");
       for (int j = 0; j < 3; j++) {
           printf("%d ", my_table[i][j]);
       }
   }
ऊपर पुन: एक nested loop का Use किया गया है जिसका कार्य Array के प्रत्येक Element को Print करना 
प्रत्येक Row को Print करने के बाद यह अगले Row को Print करने हेतू Move करता है यह loop तब तक चलते रहते है या Printing का कार्य तब तक होते रहता है जब तक दिया हुआ Condition True रहता है

4) return 0; यह सूचित करता है कि Program का Execution सफलतापूर्वक संपन्न हो गया है।
 

Advantages of Array in C in Hindi - C में Array के फायदे

1) Array एक साधारण Data Structure है जो समझने और उपयोग करने मे सरल है

2) Array का Syntax आसान है जिससे Array को Declare, Initialize और Elements को Access करना सरल हो जाता है 

3) Array के Elements को उसके Index के द्वारा तेजी से और प्रभावशाली तरीके से Access किया जा सकता है

4) Array को loop का Use करके आसानी से पुनरावृति किया जा सकता है जो सभी Elements पर कार्य करना आसान बनाता है

5)Array का Size, compile time में निर्धारित किया जाता है जो Memory को उपयोग करने के लिए अनुकुल और उसके Performance को बढ़ाने के लिए अच्छा है  

6) Array Pointer के साथ अनुकूल है जो Memory को Manipulate करने और प्रभावशाली तरीके से Arrays को Function को Pass करने की अनुमति देता है
 

Disadvantages of Array in C - C में Array से नुकसान

1) Array की Size fixed रहती है जिसे Compile Time में निर्धारित किया जाता है जिसके कारण Dynamic Data को Handle करना और Array को Resize करना एक चुनौती है

2)Array में Manual Memory Management जिसमे Allocation और Deallocation की आवश्यकता होती है और यदि इसे सही तरीके से न किया जाए तो memory leaks या buffer overflows जैसे समस्याओ का सामना करना पड़ता है

3) एक Array के मध्य में Element को Insert या Delete करना मुश्किल है और इसके लिए Elements को Shift करना पड़ता है जिससे बड़े Size वाले Arrays का प्रदर्शन खराब हो जाता है

4)Arrays में एक ही प्रकार के Data type वाले elements Store किए जाते है जो इसे अन्य Data Structure जैसे lists या trees की तुलना मे कम flexible बना देता है   

5) जब एक Array को एक function Pass किया जाता है, चुकि C में यह कार्य pass-by-value द्वारा होता है अर्थात पूरे Array का Copy किया जाता है 
यह बड़ी Array के लिए अक्षम और ज्यादा Memory खपत करने वाला हो सकता है

6) Arrays की Size को Runtime के दौरान आसानी से बड़ा या घटा नही सकते जिससे यह Dynamic Data Structure के लिए यह कम flexible है
 
   

 Related Post