C language में Pointer और Array दोनों बहुत महत्वपूर्ण concepts हैं। इन दोनों का आपस में गहरा संबंध है। आज हम समझेंगे कि Pointer और Arrays कैसे काम करते हैं, और इनका एक साथ उपयोग कैसे किया जाता है।
Array एक ऐसा डेटा structure है जो एक ही प्रकार के कई elements को sequential memory locations में store करता है। जैसे:
int arr[5] = {10, 20, 30, 40, 50};
यहाँ arr नामक array में 5 integers हैं, जिनके index 0 से 4 तक हैं।
Pointer एक variable होता है जो memory में किसी और variable के address को store करता है।
int x = 10;
int *p = &x; // p में x का address store हुआ
C में, array का नाम खुद array के पहले element का address होता है। इसका मतलब है कि array name एक pointer की तरह काम करता है।
int arr[5] = {10, 20, 30, 40, 50};
int *p = arr; // p अब arr के पहले element के address को point करता है
इसलिए हम pointer arithmetic से array के elements को access कर सकते हैं।
#include <stdio.h>
int main() {
int arr[5] = {10, 20, 30, 40, 50};
int *p = arr; // arr का address pointer p को दिया
printf("Array elements using pointer:\n");
for (int i = 0; i < 5; i++) {
printf("%d ", *(p + i)); // pointer arithmetic से element access
}
return 0;
}
p = arr;
से p अब arr के पहले element का address रखता है।*(p + i)
में p से i steps आगे जाकर उस element को access करते हैं।Array indexing और pointer arithmetic दोनों से array elements को access किया जा सकता है। दोनों समान रूप से काम करते हैं:
arr[i] == *(arr + i)
इसलिए pointer से भी array के elements को access कर सकते हैं।
#include <stdio.h>
int main() {
int arr[3] = {5, 10, 15};
int *p = arr;
*(p + 1) = 20; // arr[1] की value 20 set की
printf("Modified array elements:\n");
for (int i = 0; i < 3; i++) {
printf("%d ", arr[i]);
}
return 0;
}
*(p + 1) = 20;
का मतलब है array के दूसरे element को 20 set करो।5 20 15
Pointer to array में pointer पूरी array को point करता है, ना कि सिर्फ एक element। यह थोड़ा अलग होता है:
int arr[3] = {1, 2, 3};
int (*p)[3] = &arr; // p अब arr पूरी array का address रखता है
यह ज्यादा advanced topic है, लेकिन आपको basic pointer और array का relation पहले समझना ज़रूरी है।
हाँ, pointer किसी भी valid memory address को point कर सकता है, array के बाहर भी।
नहीं, pointer को केवल address पता होता है। array का size जानने के लिए अलग variable रखना पड़ता है।
Pointer और Array C programming के बहुत ही जरूरी topics हैं। Pointer से array को समझना और manage करना बेहतर प्रोग्रामिंग के लिए जरूरी है। ऊपर दिए गए उदाहरण और explanation से आपको Pointer और Arrays का relationship आसानी से समझ आ जाएगा।