सरणी (Array) क्या है?
संबंधित डेटा आइटम्स का एक समूह जो एक सामान्य नाम साझा करता है। सरणी में किसी विशेष मान को उसके "इंडेक्स नंबर" या "सबस्क्रिप्ट" द्वारा पहचाना जाता है।
लाभ
- एकल नाम से आइटम संग्रह का प्रतिनिधित्व
- इंडेक्स द्वारा किसी भी आइटम को संदर्भित करना
- संक्षिप्त और कुशल प्रोग्राम सक्षम करता है
घोषणा सिंटैक्स
डेटा_प्रकार सरणी_नाम[आकार];
उदाहरण
float height[50]; // 50 फ्लोट तत्वों की सरणी
int group[10]; // 10 पूर्णांक स्थिरांक की सरणी
सरणी तत्वों को एक्सेस करना
- इंडेक्स 0 से शुरू होता है (0-based indexing)
- आकार N की सरणी के लिए वैध इंडेक्स:
0सेN-1 - सिंटैक्स:
array_name[index]
प्रोग्राम: सरणी तत्व एक्सेस करना
#include <stdio.h>
int main() {
int arr[5], i;
// कुछ तत्वों को मान असाइन करें
arr[3] = 12;
arr[1] = 35;
arr[0] = 46;
// arr[2] और arr[4] अनारंभित (गार्बेज मान)
printf("सरणी तत्व हैं: ");
for (i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
आउटपुट
सरणी तत्व हैं: 46 35 38 12 9704368
नोट: arr[2] और arr[4] गार्बेज मान प्रिंट करते हैं क्योंकि हमने उन स्थानों पर कोई मान नहीं डाला।
पूर्ण प्रारंभिकरण के साथ बेहतर उदाहरण
#include <stdio.h>
int main() {
// घोषणा और प्रारंभिकरण
int arr[5] = {10, 20, 30, 40, 50};
int i;
printf("सभी तत्व:\n");
for (i = 0; i < 5; i++) {
printf("arr[%d] = %d\n", i, arr[i]);
}
// संशोधन
arr[2] = 99;
printf("\narr[2] को 99 में बदलने के बाद:\n");
for (i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// आकार की गणना
int size = sizeof(arr) / sizeof(arr[0]);
printf("सरणी आकार: %d\n", size);
return 0;
}
आउटपुट
सभी तत्व:
arr[0] = 10
arr[1] = 20
arr[2] = 30
arr[3] = 40
arr[4] = 50
arr[2] को 99 में बदलने के बाद:
10 20 99 40 50
सरणी आकार: 5
महत्वपूर्ण अवधारणाएं
सीमा जांच (Bounds Checking)
C सरणी सीमा जांच नहीं करता। सीमा से बाहर एक्सेस अनिर्धारित व्यवहार का कारण बनता है।
int arr[5];
arr[5] = 100; // खतरनाक! अनिर्धारित व्यवहार
arr[-1] = 50; // खतरनाक!
सरणी नाम एक पता है
int arr[5] = {1,2,3,4,5};
printf("%p\n", arr); // आधार पता
printf("%p\n", &arr[0]); // समान आधार पता
printf("%d\n", *arr); // 1 (पहला तत्व)
printf("%d\n", *(arr+2)); // 3 (तीसरा तत्व)
बहुआयामी सरणी
int matrix[3][4]; // 3 पंक्तियां, 4 स्तंभ
matrix[1][2] = 99; // दूसरी पंक्ति, तीसरा स्तंभ
// एक्सेस
for (int i = 0; i < 3; i++)
for (int j = 0; j < 4; j++)
printf("%d ", matrix[i][j]);
सामान्य पैटर्न
// 1. इनपुट
for (i = 0; i < n; i++) scanf("%d", &arr[i]);
// 2. आउटपुट
for (i = 0; i < n; i++) printf("%d ", arr[i]);
// 3. योग
int sum = 0;
for (i = 0; i < n; i++) sum += arr[i];
// 4. अधिकतम/न्यूनतम
int max = arr[0];
for (i = 1; i < n; i++) if (arr[i] > max) max = arr[i];
// 5. खोज
int found = -1;
for (i = 0; i < n; i++) if (arr[i] == key) { found = i; break; }
// 6. उल्टा प्रिंट
for (i = n-1; i >= 0; i--) printf("%d ", arr[i]);