सरणी संबंधित आइटम्स का समूह है जो एक सामान्य नाम से संग्रहीत होता है।
सरणी घोषित करना
datatype array_name[size];
आरंभीकरण
- कंपाइल टाइम आरंभीकरण
- रनटाइम आरंभीकरण
घोषणा के समय आरंभीकरण:
int a[5] = {100, 200, 300, 400, 500};
फंक्शन
फंक्शन एक स्व-निहित ब्लॉक है जो एक विशिष्ट कार्य करता है। सरणी को आर्गुमेंट के रूप में पास करने के दो तरीके:
- पूरी सरणी को आर्गुमेंट के रूप में भेजना
- व्यक्तिगत एलिमेंट्स को आर्गुमेंट के रूप में भेजना
पूरी सरणी को आर्गुमेंट के रूप में भेजना
- फंक्शन कॉल में सरणी का नाम भेजें (यह बेस पता पास करता है)।
- फंक्शन हेडर में सरणी पैरामीटर घोषित करें।
उदाहरण 1: सरणी एलिमेंट्स प्रदर्शित करना
#include <stdio.h>
void display(int a[5]); // फंक्शन प्रोटोटाइप
int main() {
int a[5], i;
printf("Enter 5 elements: ");
for(i=0; i<5; i++)
scanf("%d", &a[i]);
display(a); // सरणी नाम पास करना (बेस पता)
return 0;
}
void display(int a[5]) { // पूरी सरणी प्राप्त करना
int i;
printf("Elements of the array are: ");
for(i=0; i<5; i++)
printf("%d ", a[i]);
}
आउटपुट
Enter 5 elements: 10 20 30 40 50 Elements of the array are: 10 20 30 40 50
उदाहरण 2: सरणी को रिवर्स ऑर्डर में प्रिंट करना
#include <stdio.h>
void rev(int arr[5]); // फंक्शन प्रोटोटाइप
void main() {
int array[5], i;
void rev(int array[5]);
printf("Enter elements into the array:\n");
for(i=0; i<5; i++) {
printf("array[%d]: ", i);
scanf("%d", &array[i]);
}
printf("The elements from the array displayed in reverse order:\n");
rev(array); // पूरी सरणी पास करना
}
void rev(int array[5]) {
int i;
for(i=4; i>=0; i--) {
printf("array[%d]: %d\n", i, array[i]);
}
}
आउटपुट
Enter elements into the array: array[0]: 23 array[1]: 34 array[2]: 12 array[3]: 56 array[4]: 12 The elements from the array displayed in reverse order are: array[4]: 12 array[3]: 56 array[2]: 12 array[1]: 34 array[0]: 23
महत्वपूर्ण बिंदु
- C में सरणी नाम पास करने पर पहले एलिमेंट का पता पास होता है (पास-बाय-रेफरेंस जैसा व्यवहार)।
- फंक्शन में सरणी में किए गए परिवर्तन मूल सरणी को प्रभावित करते हैं।
- फंक्शन पैरामीटर में आकार वैकल्पिक है:
void display(int a[])याvoid display(int *a)भी काम करता है। - सरणी का आकार फंक्शन के अंदर
sizeofसे नहीं पता चलता (पॉइंटर का आकार देता है)।
बेहतर अभ्यास: आकार भी पास करें
void display(int *a, int size) {
for(int i=0; i