🟡 Intermediate · Lesson 25
Pointers और Arrays
Pointer और Array Relationship
C में arrays और pointers का बहुत close relation होता है। Array का नाम अक्सर first element का address represent करता है। इसलिए array elements को index और pointer दोनों methods से access कर सकते हैं।
💡 मुख्य बात
arr[i] लगभग *(arr + i) जैसा ही काम करता है। दोनों same element access करते हैं।
Array Name as Pointer
C Language
#include <stdio.h>
int main() {
int arr[5] = {10, 20, 30, 40, 50};
printf("First element address = %p\n", (void*)&arr[0]);
printf("Array name address = %p\n", (void*)arr);
printf("First value = %d\n", *arr);
printf("Third value = %d\n", *(arr + 2));
return 0;
}⚠️ ध्यान दें
arr expression में pointer की तरह behave करता है, पर यह modifiable pointer variable नहीं है। इसलिए arr++ invalid है।
Pointer Arithmetic
Pointer में 1 add करने पर वह next element पर जाता है। जैसे int * pointer next integer पर जाएगा।
C Language
#include <stdio.h>
int main() {
int marks[] = {85, 90, 78, 92};
int *p = marks;
for(int i = 0; i < 4; i++) {
printf("%d ", *(p + i));
}
return 0;
}85 90 78 92
Array को Function में भेजना
Function में array भेजने पर उसका base address जाता है। इसलिए function के अंदर changes original array को affect कर सकते हैं।
C Language
void change(int *a, int n) {
for(int i = 0; i < n; i++)
a[i] += 10;
}सारांश
- Array name base address देता है
arr[i]और*(arr+i)same value access करते हैं- Pointer arithmetic data type size के अनुसार move करती है
- Array function में pointer की तरह pass होता है
- Practice के लिए sum, max, reverse pointer से करें
अक्सर पूछे जाने वाले प्रश्न (FAQ)
C में pointers और arrays का क्या संबंध है?
Array नाम अपने पहले element के pointer की तरह काम करता है, तो
a और &a[0] वही address दर्शाते हैं। इसीलिए आप *(a + i) जैसे pointer notation से a[i] तक पहुँच सकते हैं। Arrays और pointers घनिष्ठ रूप से जुड़े हैं, हालाँकि array नाम खुद दोबारा assign नहीं हो सकता।क्या C में array नाम एक pointer है?
Array नाम अधिकांश expressions में पहले element के pointer जैसा व्यवहार करता है, पर यह modifiable pointer variable नहीं है। आप array नाम पर
a = a + 1; नहीं कर सकते, जबकि असली pointer पर कर सकते हैं। तो यह pointer-जैसा है, सच्चा pointer नहीं।Array पर pointer arithmetic क्या है?
Pointer arithmetic का मतलब pointer को array elements में जोड़-घटाकर सरकाना है। Pointer में 1 जोड़ना उसे अगले element पर ले जाता है — अगले byte पर नहीं — क्योंकि C step को element type के size से गुणा करता है, तो
p + 1 हमेशा अगले item पर इशारा करता है।Function में भेजे arrays pointers क्यों बन जाते हैं?
जब आप function को array भेजते हैं, C केवल उसके पहले element का address भेजता है, पूरे array की copy नहीं। Function के अंदर parameter एक pointer होता है, इसीलिए वहाँ किए बदलाव मूल array को प्रभावित करते हैं और array size साथ नहीं जाता।
C में *(a + i) का क्या मतलब है?
*(a + i) a[i] का pointer रूप है। a + i i-वें element का address निकालता है, और * वहाँ रखी value पढ़ता है। दोनों notations पूरी तरह समान हैं और वही परिणाम देते हैं।💻 लाइव कोड एडिटर
इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.