सरणी तत्वों तक पहुंचने के लिए
हम पॉइंटर्स का उपयोग करके सरणी तत्वों तक पहुँच सकते हैं।
सी में
उदाहरण
#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
डायनामिक मेमोरी आवंटन
मेमोरी को गतिशील रूप से आवंटित करने के लिए हम पॉइंटर्स का उपयोग करते हैं।
सी में
उदाहरण
#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
संदर्भ के रूप में किसी फ़ंक्शन के लिए तर्क पास करना
दक्षता बढ़ाने के लिए हम फ़ंक्शन में संदर्भ द्वारा तर्क पारित करने के लिए पॉइंटर्स का उपयोग कर सकते हैं।
सी में
उदाहरण
#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
लिंक्ड लिस्ट, ट्री जैसी डेटा संरचनाओं को लागू करने के लिए हम पॉइंटर्स का भी उपयोग कर सकते हैं।