অ্যারে এলিমেন্ট এক্সেস করা
পয়েন্টার দিয়ে অ্যারে এলিমেন্ট এক্সেস করা যায়।
C-এ উদাহরণ
#include <stdio.h>
int main() {
int a[] = {60, 70, 20, 40};
printf("%d\n", *(a + 1));
return 0;
}
আউটপুট
70
C++-এ উদাহরণ
#include <iostream>
using namespace std;
int main() {
int a[] = {60, 70, 20, 40};
cout << *(a + 1);
return 0;
}
আউটপুট
70
ডাইনামিক মেমরি এলোকেশন (Dynamic Memory Allocation)
ডাইনামিক্যালি মেমরি এলোকেট করতে পয়েন্টার ব্যবহার করা হয়।
C-এ উদাহরণ
#include <stdio.h>
#include <stdlib.h>
int main() {
int i, *ptr;
ptr = (int*)malloc(3 * sizeof(int));
if (ptr == NULL) {
printf("Error! memory not allocated.");
exit(0);
}
*(ptr+0) = 1;
*(ptr+1) = 2;
*(ptr+2) = 3;
printf("Elements are:");
for (i = 0; i < 3; i++)
printf("%d ", *(ptr + i));
free(ptr);
return 0;
}
আউটপুট
Elements are: 1 2 3
C++-এ উদাহরণ
#include <iostream>
#include <stdlib.h>
using namespace std;
int main() {
int i, *ptr;
ptr = (int*)malloc(3 * sizeof(int));
if (ptr == NULL) {
cout << "Error! memory not allocated.";
exit(0);
}
*(ptr+0) = 1; *(ptr+1) = 2; *(ptr+2) = 3;
cout << "Elements are:";
for (i = 0; i < 3; i++)
cout << *(ptr + i);
free(ptr);
return 0;
}
আউটপুট
Elements are: 1 2 3
ফাংশন আর্গুমেন্ট রেফারেন্স হিসেবে পাস করা (Pass by Reference)
পয়েন্টার দিয়ে আর্গুমেন্ট রেফারেন্স হিসেবে পাস করলে এফিশিয়েন্সি বাড়ে।
C-এ উদাহরণ
#include <stdio.h>
void swap(int* a, int* b) {
int t = *a; *a = *b; *b = t;
}
int main() {
int m = 7, n = 6;
swap(&m, &n);
printf("%d %d\n", m, n);
return 0;
}
আউটপুট
6 7
C++-এ উদাহরণ
#include <iostream>
using namespace std;
void swap(int* a, int* b) {
int t = *a; *a = *b; *b = t;
}
int main() {
int m = 7, n = 6;
swap(&m, &n);
cout << m << n;
return 0;
}
আউটপুট
67
লিংকড লিস্ট, ট্রি ইত্যাদি ডেটা স্ট্রাকচার ইমপ্লিমেন্ট করতেও পয়েন্টার ব্যবহার করা হয়।