Chapter 10C Language Tutorial~1 min read
Pointers in C
Pointers — Memory Addresses
Pointer म्हणजे दुसऱ्या variable चा memory address साठवणारा variable. C चे सर्वात powerful आणि unique feature! Dynamic memory, arrays, strings, functions — सगळ्यात pointers वापरतात.
Marathi Analogy
Pointer म्हणजे Pune मधल्या घराचा पत्ता. घर म्हणजे variable (data साठवतो). पत्ता म्हणजे pointer (घर कुठे आहे ते सांगतो). पत्त्यावर जाऊन घरातले बदलता येते — हेच pointer dereference!
& आणि * — Address आणि Dereference
Pointer basics
c
#include <stdio.h>
int main() {
int num = 42;
// & = address-of operator — variable चा address देतो
printf("Value: %d\n", num);
printf("Address: %p\n", &num); // ex: 0x7fff5a2b
// Pointer declare करणे — * वापरतात
int *ptr = # // ptr मध्ये num चा address आहे
printf("ptr holds: %p\n", ptr); // num चा address
printf("*ptr = %d\n", *ptr); // 42 — dereference
// Pointer द्वारे value बदलणे
*ptr = 100;
printf("num is now: %d\n", num); // 100 — बदलला!
return 0;
}Pointer आणि Arrays
Array name = pointer to first element
c
#include <stdio.h>
int main() {
int arr[] = {10, 20, 30, 40, 50};
int *ptr = arr; // arr हे arr[0] चा address आहे
// Pointer arithmetic
printf("%d\n", *ptr); // 10 — arr[0]
printf("%d\n", *(ptr+1)); // 20 — arr[1]
printf("%d\n", *(ptr+2)); // 30 — arr[2]
// Pointer वापरून array traverse करणे
for (int i = 0; i < 5; i++) {
printf("%d ", *(ptr + i));
}
// Output: 10 20 30 40 50
return 0;
}Pointer as Function Parameter — Call by Reference
Pointer passed to function — original बदलतो!
c
#include <stdio.h>
// Pointer receive करतो — original बदलू शकतो
void doubleIt(int *x) {
*x = *x * 2;
}
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int num = 5;
doubleIt(&num);
printf("num after double: %d\n", num); // 10
int x = 3, y = 7;
swap(&x, &y);
printf("After swap: x=%d, y=%d\n", x, y); // x=7, y=3
return 0;
}✅ Key Points — लक्षात ठेवा
- ▸& = address-of: &num → num चा memory address
- ▸* = dereference: *ptr → ptr जो address hold करतो त्यातला value
- ▸int *ptr — integer pointer declare
- ▸Array name itself is a pointer to its first element
- ▸Pointer function parameter — call by reference होतो
0/12 chapters पूर्ण