इस tutorial में हम समझेंगे की array क्या है. इसके बाद सीखेंगे की कैसे आप C programming में array declaration और initialization कर सकते हैं.
इसके अलावा हम सीखेंगे की array में input कैसे लेते हैं और array elements को कैसे access किया जाता है लेकिन ये सब समझने से पहले हम बात करेंगे की array की जरुरत क्यों पड़ती है.
नीचे हमने एक C program बनाया है जिसमें हमने एक-एक करके 5 numbers user से input लिए और फिर उनका sum और उन numbers को print भी कराया है.
Sum of 5 Numbers C Program:
#include <stdio.h>
int main()
{
int num1, num2, num3, num4, num5, sum=0;
printf("Enter 1 Number : ");
scanf("%d",&num1);
printf("Enter 2 Number : ");
scanf("%d",&num2);
printf("Enter 3 Number : ");
scanf("%d",&num3);
printf("Enter 4 Number : ");
scanf("%d",&num4);
printf("Enter 5 Number : ");
scanf("%d",&num5);
sum = num1+num2+num3+num4+num5;
printf("%d = %d + %d + %d + %d + %d",sum,num1,num2,num3,num4,num5);
return 0;
}
Output:
Enter 1 Number : 5 Enter 2 Number : 3 Enter 3 Number : 2 Enter 4 Number : 5 Enter 5 Number : 2 17 = 5 + 3 + 2 + 5 + 2
ऊपर दिया program बहुत ही आसान है लेकिन suppose करिए अगर इस program में हमें 5 numbers की जगह 50 या उससे ज्यादा N numbers का program बनाना होता तो हमारा program कितना ज्यादा lengthy हो जाता.
मेरे कहने का मतलब ये है की आपको program बनाने के लिए बहुत ज्यादा फालतू की मेहनत करनी पड़ती क्योंकि आपको सबसे पहले N variables (num1, num3, …, numN) declare करने पड़ते है.
उसके बाद N times ही आपको printf और scanf का use करना पड़ता और N variables को एक-एक लिखकर sum करना पड़ता.
ये सब सोचने में ही कितना समय की बर्बादी लगता है की क्योंकि इतना lengthy program बनाने में या इसमें changes करने में बहुत ज्यादा time waste होगा.
जब भी आपको इस तरह का कोई program बनाना हो जिसमें आपको same data type की बहुत सारे variables के साथ work (processing) करना हो तो इसके लिए array का use करना सबसे अच्छा option होगा.
C Programming में Array क्या है?
Array homogeneous data का fixed size ordered collection होता है. इस अजीब सी definition को समझने के लिए आपको इसमें use की terms का मतलब समझना होगा जिन्हें मैंने नीचे समझाया है.
Homogeneous Data – इसका मतलब ये है की array जो data (elements) store करता है वो एक ही तरह के यानी same data type के होते हैं. Homogeneous शब्द का मतलब ही एक ही तरह के (समजातीय) होता है.
Fixed Size – इसका मतलब ये है की array कितने elements store करेगा ये पहले ही से ही fixed होता है क्योंकि जब हम array declare करते हैं तब ही उसका size define करते हैं.
Ordered Collection – इसका मतलब ये है की array के सभी elements (data) को continuous memory addresses दिए जाते हैं. आप इस topic को Pointers वाले tutorial में अच्छे से समझेंगे.
मुझे उम्मीद है की आपको थोड़ा बहुत idea लग गया होगा की array क्या है. अब जैसे-जैसे आप इस tutorial को आगे पढ़ते जाएंगे आपको array अच्छे से समझ आने लगेगा.
Array Declaration in C Language
Array declaration लगभग variable declaration जैसा ही होता है बस फर्क ये होता है की आप array declaration में array का size भी बताते हैं.
Array declaration syntax:
data_type array_name[SIZE];
data_type: Array declaration में सबसे पहले उसका primitive data type बताना होता है यानी की array किस data type (int, char, float etc.) के elements को store करेगा.
array_name: Array का data type बताने के बाद array को एक name देते है. आप अपने मन से कुछ भी नाम दे सकते हैं लेकिन वो C identifier rules के अनुसार होना चाहिए.
array_size: Array name के बाद जो square brackets [ ] हैं उसमें array का size बताया जाता है यानी की आप array में कितने elements store करना चाहते हो.
Array size बताते वक्त ये याद रखिएगा की array size कोई constant value ही होनी चाहिए. आप array size बताने के लिए variable का use नहीं कर सकते.
Array declaration examples:
int marks[5]; int arr[50] char name[15]; float cgpa[12];
Array declare करने से memory में array size के अनुसार array के सभी elements के लिए space allocate हो जाता है.
Array के सभी element space को access करने के लिए हम array index (subscript) का use किया जाता है.
Array index 0 से start होता है और last index array size से एक कम होता है. जैसे अगर array का size 5 है तो last index 4 होगा.
Array Initialization in C Language
Array initialization का मतलब है array को values assign करना यानी array में elements store करना.
आप 2 तरह से array initialization कर सकते हो. पहला array declaration के वक्त ही और दूसरा array declaration करने के बाद array index की help से.
Array declaration and initialization syntax:
data_type array_name[Size] = { value1, value2, value3, ..., ValueN }; data_type array_name[] = { value1, value2, value3, ..., ValueN };
Note: जब आप Array declaration और initialization एक साथ करते हैं तब array के square brackets [ ] में array का size बताना जरूरी नहीं है.
अगर आप array size नहीं बताते हैं तो compiler automatically array elements count करके array का size detect कर लेगा.
Array declaration and initialization examples:
int marks[5] = {24, 15, 68, 75, 22}; float heights[] = {5.4, 6.2, 5.8, 6.0}; char arr[3] = {'G', 'i', 'K'};
Array initialization syntax using index:
array_name[index] = value;
Array initialization examples using index:
marks[0] = 24; marks[3] = 75; arr[2] = 'K'; heights[3] = 6.0;
C Programming में User से Array में Input कैसे ले?
हम अपने programs में array के साथ बहुत तरह के operations perform करते हैं जैसे की array में input लेना, array elements print कराना, searching, updation, sorting इत्यादि.
Array में इन सभी operations को करने के लिए 99.9% ये possibility रहती है की आप Loops का use करें.
ज्यादातर हम for loop की help से array में अलग-अलग operations perform करते हैं. आइये इस बात को examples के साथ समझते हैं.
Array example program without using loop:
#include <stdio.h>
int main()
{
int num[5];
printf("Enter 1 Number : ");
scanf("%d",&num[0]);
printf("Enter 2 Number : ");
scanf("%d",&num[1]);
printf("Enter 3 Number : ");
scanf("%d",&num[2]);
printf("Enter 4 Number : ");
scanf("%d",&num[3]);
printf("Enter 5 Number : ");
scanf("%d",&num[4]);
printf("Array Elements : %d, %d, %d, %d, %d",num[0],num[1],num[2],num[3],num[4]);
return 0;
}
Ouput:
Enter 1 Number : 32 Enter 2 Number : 45 Enter 3 Number : 65 Enter 4 Number : 75 Enter 5 Number : 45 Array Elements : 32, 45, 65, 75, 45
Why need loop: इस tutorial के शुरुआत में ही हमने एक program बनाया था वो और इस program में ज्यादा अंतर नहीं है.
फर्क तो सिर्फ इस बात का की आपको हर element (numbers) को store करने के लिए अलग-अलग variables नहीं declare करने पड़े.
हमने सभी elements को num array में index (num[0], num[1], … , num[4]) की help से एक-एक करके store करा लिया है.
लेकिन इस तरह एक-एक करके index की help से array में input लेना या किसी अन्य operations को करने का तरीका गलत है क्योंकि इससे भी program lengthy हो रहा है.
इसलिए जब भी हम अपने programs में array का use करते हैं तो उसके साथ काम करने के लिए for loop का use जरूर करते हैं. आइये ऊपर वाले program को loop की help से बनाते हैं.
Array example program using loop:
#include <stdio.h>
int main()
{
int num[5],i;
for(i=0;i<5;i++)
{
printf("Enter %d Number : ",(i+1));
scanf("%d",&num[i]);
}
printf("Array Elements : ");
for(i=0;i<5;i++)
{
printf("%d ",num[i]);
}
return 0;
}
Ouput:
Enter 1 Number : 32 Enter 2 Number : 45 Enter 3 Number : 65 Enter 4 Number : 75 Enter 5 Number : 45 Array Elements : 32, 45, 65, 75, 45
Explanation:
जैसा की आप ऊपर के दोनों programs को देख सकते हो की दोनों में हमने user से array में elements input लिए है लेकिन दूसरा program जिसमें हमने loop का use किया है वो बहुत ही short program है.
हमारे array का size 5 था और जैसा की आप जानते हैं की array के first index 0 होता है और last index size-1 इसलिए हमने अपना loop 0 से लेकर <5 यानी 4 तक चलाया है.
इससे ये फायदा हुआ की loop भी 5 बार (0, 1, 2, 3, 4) चल गया है और variable i को हमने loop के अंदर array में input लेने के लिए और array print कराने के लिए index के तौर पर भी use कर लिया.
C Language में Array से related अन्य जानकारी
अगर आप सिर्फ array के किसी specific index पर input लेना चाहते हो या print कराना चाहते हो तो आपको loop की जरुरत नहीं है.
int arr[10]; scanf("%d",&arr[4]); printf("%d",arr[4]);
C Array में input लेते वक्त या उसे initialize करते वक्त array index का विशेष ध्यान रखें. जैसे नीचे example में हमारा array का size 5 है.
अब अगर आप 5th index उससे ज्यादा वाले index पर input लेंगे या print कराएँगे तो ये गलत code होगा.
C programming में ये सबसे बड़ी problem है की array को use करते वक्त गलत code (syntax) लिखने पर भी compiler आपको error show नहीं करता.
int arr[5]; scanf("%d",&arr[0]); //right scanf("%d",&arr[5]); //wrong scanf("%d",&arr[2]); //right scanf("%d",&arr[7]); //wrong
What’s Next: इस tutorial में हमने Array के बारे में पढ़ा. Next tutorial में हम C programming में Multidimensional Array का use करना सीखेंगे.