C in Hindi : Arrays

C Arrays

  • Introduction to C arrays in Hindi 
  • Declaring C arrays in Hindi 
  • Initializing C arrays in Hindi 
  • Accessing elements of C arrays in Hindi

Introduction to C Arrays 

मान लीजिये आप एक ऐसा प्रोग्राम बना रहे है जो employees का नाम computer में store करता है। अब मान लीजिये आपकी company में 200 employees है। आप इन 200 employees के नाम किस तरह से store करेंगे। यदि आप सोच रहे है की आप 200 variables create करेंगे तो ये एक बहुत ही complex approach होगी। 

इसमें आपको program बनाने में बहुत समय लग जायेगा और program भी हद से ज्यादा बड़ा हो जायेगा। ये आपके time और computer memory space दोनों का wastage है। और साथ ही आप इतने सारे variables के नाम सोच भी नहीं सकते है और यदि सोच भी लेंगे तो program में यूज़ करने के लिए उन्हें याद तो definitely नहीं रख सकते है।  

मेरे पास आपके लिए इससे भी better approach है और उस approach को C language में array कहते है। Array similar type की values का collection होता है। Similar type से यँहा मेरा मतलब similar data type से है जसे की int, float , Char आदि।  

C आपको arrays के द्वारा ऐसी facility provide करती है की आप सिर्फ एक variable create करे और उस variable में 200 employees के नाम (या जो भी information आप store करना चाहते है) store कर ले। आप सोच रहे होंगे की एक variable में इतने सारे नाम कैसे store करेंगे। इसके बारे में मुझे आपको बताने में बहुत ख़ुशी होगी। लेकिन उससे पहले आइये देखते है की array को create कैसे करते है।  

Creating C Arrays 

Array एक structured data type होता है। जैसा की आपने C Structures की tutorial में पढ़ा होगा की एक structure में आप कई variables create कर सकते है। यँहा भी situation कुछ कुछ वैसी ही है। जब भी आप एक array create करते है तो आप array का नाम और आप उसमे कितनी values store करने वाले है ये define करते है। 

जैसे की मान लीजिये आप 5 numbers store करना चाहते है तो उसके लिए आप array create कर सकते है। C में arrays create करने का general structure नीचे दिया गया है। 

data_type array-name[size];
    
size से आप define करते है की आप कितनी values store करना चाहते है। इसका उदाहरण नीचे दिया जा रहा है। 

int num[5];

उपर दिए गए उदाहरण में array का नाम num है और उसमे आप कोई भी 5 integer values store कर सकते है।

Initializing C Arrays 

यँहा तक मैने आपको बताया है की array कैसे create करते है। अब आपके सबसे महत्वपूर्ण question पर आते है की आप इस array में 5 values कैसे store करेंगे। तो में आपको बता दूँ की जब भी आप array create करते है तो जितनी उसकी size होती है उतनी ही locations उस array को memory में allocate हो जाती है। और वो locations उतने ही index numbers के नाम से allocate होती है। 

Index numbers हर location का एक unique नाम होता है। जैसे की यँहा ऊपर दिए उदाहरण में 5 index numbers होंगे। आपको एक बात हमेशा याद रखनी चाहिए की array की index हमेशा zero से शुरू होती है।

num[0]
num[1]
num[2]
num[3]
num[4]
          
Array के नाम और index number से आप create की गयी हर location में value store करवा सकते है और बाद में उससे value access भी कर सकते है।  

(Note : Arrays की index हमेशा zero से शुरू होती है। )

जैसे की ऊपर create किये गए array में आप इस प्रकार value insert करवा सकते है। 

num[0] = 50;
num[1] = 100;
num[2] = 150;
num[3] = 200;
num[4] = 250;

आप चाहे तो हर location को अलग से value assign करने की बजाय एक साथ भी सभी values को assign कर सकते है। ऐसा आप इस प्रकार कर सकते है। 

int num[5] = {50,100,150,200,250};

और यदि आप values यूज़र से run time में store करवाना चाहते है तो ऐसा आप इस प्रकार कर सकते है। 

for(int i=0; i<=5; i++)
{
    scanf("%d",&num[i]);
}


Accessing Array Elements

अब तक मैने आपको arrays create करना और उनमे values store करना बताया है। इस section में में आपको उन values को access करना बताऊंगा। Array elements को access करके आप उन पर वो सभी operations perform कर सकते है जो आप normal variables के साथ perform कर सकते है। उदाहरण के लिए आप 2 array elements को add करवा सकते है। 

जँहा भी array element को access करना चाहते है उस जगह आप array का नाम और index number लिखते है। उदाहरण के लिए निचे लिखे गए statement को देखिये। 

num[2] = num[0] + num [1];
      
ऊपर दिए गए statement में शुरू की 2 values को add करके 3 location पर store करवाया गया है। 

यदि आप किसी एक value को print करवाना चाहते है तो ऐसा आप इस प्रकार कर सकते है।

printf("%d",num[3]);
  
ऊपर दिया गया statement 4th location की value print करेगा जो की यँहा दिए गए example में 200 है।

यदि आप पुरे array को एक साथ print करना चाहते है तो ऐसा आप loop की मदद से कर सकते है। ये ध्यान रखे की loop उतना ही चले जितनी की values आपके array में है। इसका उदाहरण नीचे दिया जा रहा है। 

for(int i=0; i<=5;i++)
{
    printf("%d",num[i]);
}           

Example

#include <stdio.h>
#include <conio.h>

int main()
{
     int arr[5];
     int i;
    
     printf("Please enter 5 array elements : \n");
     for(i=0;i<=4;i++)
     {
         scanf("%d",arr[i]);
     }

     printf("Array is:");
     for(i=0;i<=4;i++)
     {
          printf("%d\t",arr[i]);
     }

     return 0; 

ऊपर दिया गया program निचे दिया गया output generate करता है।

Please enter 5 array elements : 5 4 3 2 1
Array is : 5 4 3 2 1 


Two Dimensional Arrays

एक normal array में data list की form में store किया जाता है जिसमें एक के बाद दूसरा element होता है। यदि आप data tabular form में store करना चाहते है तो इसके लिए आप two dimensional array create कर सकते है। उदाहरण के लिए आप 4 employees की id और उनका phone number store करना चाहते है। इसके लिए table इस प्रकार बनेगी। 

101
7599393
102
9384940
103
9458940
104
9129399
   
इस प्रकार की table आप two dimensional array के द्वारा memory में create कर सकते है।

Creating Two Dimensional Array

C language में two dimensional array create करने का general syntax निचे दिया जा रहा है। 

data-type array_name[row][column];

Two dimensional array को row और column के संदर्भ में define किया जाता है। सबसे पहले आप array का type define करते है। इसके बाद आप array का एक unique नाम define करते है। इसके बाद आप जितनी row create करना चाहते है उतनी संख्या angular bracket में define करेंगे। इसके बाद आप जितने columns create करना चाहते है उतनी संख्या दूसरे angular bracket में define करेंगे।

उदाहरण के लिए ऊपर दी गयी table आप two dimensional array के माध्यम से memory में इस प्रकार create करेंगे।

int myArray[4][2];

ऊपर दिया गया statement memory में एक table (two dimensional array) create करेगा जिसकी 4 rows और 2 columns होंगे।  

Initializing Two Dimensional Array

Two dimensional array को आप किसी variable की तरह initialize कर सकते है। जब आप इस प्रकार initialize करते है तो हर position के लिए separately value assign करते है। उदाहरण के लिए आप पहली row के पहले column में value store करना चाहते है तो ऐसा आप इस प्रकार करेंगे।
    
myArray[1][1]=101;

इसी प्रकार second column में phone number आप इस प्रकार store कर सकते है।

myArray[1][2]=7599393;

यदि आप user से इस array में value input करवाना चाहते है तो इसके लिए आप 2 loops use करेंगे। पहला loop rows को iterate करेगा और इसे row की संख्या तक ही चलाया जायेगा। दूसरा loop columns को iterate करेगा और इसे भी columns की संख्या तक ही चलाया जायेगा। इसका उदाहरण निचे दिया जा रहा है।

for(int i=0;i<4;i++)
{
    for(int j=o;j<2;j++)
    {
          scanf("%d",myArray[i][j]);
    }
}

Accessing Two Dimensional Array

Two dimensional array में से यदि आप किसी single element को access करना चाहते है तो ऐसा आप उसकी position index को access करके कर सकते है। उदाहरण के लिए यदि आप 2nd row के 1st column की value print करना चाहते है तो इसके लिए आप इस प्रकार statement लिखेंगे। 

printf("Element at 2nd row 1st column is :%d",myArray[2][1]);

यदि आप array के सभी elements को एक बार में print करना चाहते है तो इसके लिए आप 2 loops use करते है। इसका उदाहरण निचे दिया जा रहा है।

for(int i=0;i<4;i++)
{
    for(int j=o;j<2;j++)
    {
          printf("%d",myArray[i][j]);
    }
}

Example 

#include <stdio.h>

int main()
{
     int myArray[4][2];
     int i,j;

     printf("Please enter array elements : ")
   for(i=0;i<4;i++)
  {
      for(j=0;j<2;j++)
      {
           scanf("%d",&myArray[i][j]);
      }
  }

  printf("Arrays is : \n")
for(i=0;i<4;i++)
{
    for(j=0;j<2;j++)
    {
          printf("%d",myArray[i][j]);
    }
    printf("\n");
}
      

ऊपर दिया program निचे दिया गया output generate करता है। 

Please enter array elements : 1 2 3 4 5 6 7 8
Arrays is : 
1  2
3  4
5  6
7  8 

Passing Array to Function

आप चाहे तो एक array को किसी function में argument के रूप में भी pass कर सकते है। इसके लिए function में parameter declare करने का general syntax निचे दिया जा रहा है।

return-type function-name(array-type array-name[])
{
     //Function code here...
}

Functions में array pass करना simple उदाहरण द्वारा समझाया जा रहा है।

#include<stdio.h>

int sum(int num[], int size);

void main()
{
    int num[5] = {2,2,2,2,2};

    int res;

     res = sum(num,5);

     printf("Sum of arrays is %d\n",res);
}

int sum(int num[], int size)
{
    int i;
    int result=0;

    for(i=0;i<size;++i)
    {
        result += num[i];
    }

    return result;
}

ऊपर दिया गया उदाहरण निचे दिया गया output generate करता है।

Sum of array is 10

Returning Array from Function 

Normal variables के अलावा किसी function से array भी return किया जा सकता है। C language में एक complete array को return करना allow नहीं है लेकिन आप array का pointer return कर सकते है। इसके लिए आपको array का नाम बिना index के साथ specify करना होगा।

एक महत्वपूर्ण बात आपको ये ध्यान रखनी चाहिए की C language function के किसी local variable का address return किया जाना allow नहीं करती है। इसलिए आप जिस को return करना चाहते है उसे आपको static define करना होगा।

जिस function से आप array return करना चाहते है उसका return आपको pointer के साथ declare करना होगा। क्योंकि जैसा की मैने पहले बताया C language में array का pointer return करना ही allow है। इसका syntax निचे दिया जा रहा है।

return-type * function-name
{
      //Function code here...
}

C language में function से array return करने का उदाहरण निचे दिया जा रहा है।

#include<stdio.h>

int* table(int num)
{
     static int tbl[10];
     int i;

     for(i=1;i<=10;i++)
     {
         tbl[i] = num*i;
     }

     return tbl;
     
}

int main()
{
    int *t;
    int num;
    int j;

    printf("Please enter a number to generate its table.\n");
    scanf("%d",&num);

    t=table(num);

    printf("Table of %d is given below : \n",num);

    for(j=1;j<=10;j++)
    {
        printf("%d\n",t[j]);
    }

    return 0;
}

ऊपर दिया गया उदाहरण निचे दिया गया output generate करता है।

Please enter a number to generate its table.
2
Table of 2 is given below :
2
4
6
8
10
12
14
16
18
20

Pointer to Array

एक array का नाम constant pointer होता है। यह pointer array के first element को point करता है। जब भी आप कोई array create करते है तो यह pointer automatically create हो जाता है। 

इसलिए यदि आप किसी array के नाम को किसी pointer variable को assign करते है तो इसके लिए आपको array के नाम से पहले address of (&) operator define करने की आवश्यकता नहीं होती है। क्योंकि जैसा की मैने पहले बताया एक array का नाम already constant pointer होता है। 

उदाहरण के लिए आपने एक array create किया है Num नाम से जिसमें 5 integer numbers है।

int Num[5] = {1,2,3,4,5};

यदि इसी array के नाम को किसी integer pointer variable को assign किया जाता है तो वह variable Num array के first element 1 को point करेगा।

int *n;

n=Num;

इस situation में pointer variable n array के first variable का address hold करता है। यदि इसे value at (*) operator के साथ use किया जाए तो यह variable 1 print करता है। इसी प्रकार आप इस pointer variable द्वारा array के सभी elements को access कर सकते है।

Array और pointers का एक simple उदाहरण निचे दिया जा रहा है।

#include<stdio.h>

int main()
{
   int Num[5] = {1,2,3,4,5};
   int *n;

   n=Num;

   printf("%d",*n+2);

   return 0;
}

ऊपर दिया गया उदाहरण निचे दिया गया output generate करता है।

3

      DMCA.com Protection Status

 Leave a comment