Introduction
अब तक हमने pointers और arrays को अलग-अलग समझा है, लेकिन C language में दोनों का बहुत गहरा संबंध होता है।
Important बात:
Array का नाम खुद एक pointer की तरह behave करता है।
जब हम array declare करते हैं:
int arr[5];
तो:
arractually first element का address represent करता है- यानी
arr = &arr[0]
इसी कारण pointer और array को साथ में use करके हम:
- data को efficiently access कर सकते हैं
- loops को simplify कर सकते हैं
- memory handling को better बना सकते हैं
यह concept exam और practical दोनों के लिए बहुत important है।
Definition
Pointer and Arrays का मतलब है pointer का उपयोग करके array elements को access और manipulate करना।
Basic Concept
arr[i] ≡ *(arr + i)
मतलब:
- index method
- pointer method
दोनों same काम करते हैं
Example 1: Array Access using Pointer
#include <stdio.h>
int main()
{
int arr[3] = {10, 20, 30};
int *p = arr;
printf("%d\n", *p);
printf("%d\n", *(p + 1));
printf("%d", *(p + 2));
return 0;
}
Output:
10
20
30
Explanation:
p→ first element का address(p + 1)→ next element
Example 2: Using Array Index and Pointer दोनों
#include <stdio.h>
int main()
{
int arr[3] = {5, 10, 15};
int i;
for (i = 0; i < 3; i++)
{
printf("%d %d\n", arr[i], *(arr + i));
}
return 0;
}
Output:
5 5
10 10
15 15
Explanation:
- दोनों methods same output देते हैं
Example 3: Modify Array using Pointer
#include <stdio.h>
int main()
{
int arr[3] = {1, 2, 3};
int *p = arr;
int i;
for (i = 0; i < 3; i++)
{
*(p + i) = *(p + i) * 2;
} for (i = 0; i < 3; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
Output:
2 4 6
Explanation:
- pointer से original array modify हुआ
Example 4: Pointer Traversal
#include <stdio.h>
int main()
{
int arr[3] = {10, 20, 30};
int *p = arr;
int i;
for (i = 0; i < 3; i++)
{
printf("%d ", *p);
p++;
}
return 0;
}
Output:
10 20 30
Explanation:
- pointer move करके array traverse किया
Important Concepts
1. Array Name as Pointer
arr == &arr[0]
2. Pointer Arithmetic
*(arr + i)
Technical Understanding
Pointer + Array का use:
- fast data access
- array traversal
- dynamic memory
- efficient looping
Important Points
- array name pointer की तरह behave करता है
- pointer arithmetic array में use होता है
- दोनों methods equivalent हैं
- pointer से array modify हो सकता है
Exam Points
- pointer + array relation जरूर पूछा जाता है
- arr[i] = *(arr + i) (very important)
- array name = base address
- pointer traversal important है
- output-based questions आते हैं