आज आप पढ़ने वाले हैं Pointer in C Programming in Hindi में आसान Explanation Example Program के साथ। Pointer समझना कई लोगों को rocket science जैसा लगता है — लेकिन क्या आप जानते हैं कि जब आप कोई भी fast software, operating system, या game खेलते हैं, तो उसके पीछे pointers का ही जादू होता है? C programming सीखने वाले लगभग 70% students pointers पर आके रुक जाते हैं, और यही वह point होता है जहाँ beginners या तो आगे बढ़ जाते हैं या programming छोड़ने का सोच लेते हैं।
इस blog post में हम pointer को बिल्कुल शुरुआत से सीखेंगे। आपको किसी भी advanced knowledge की जरूरत नहीं है। हम सरल भाषा में, real life उदाहरणों के साथ और code examples की मदद से pointer को समझेंगे।
इस post को पढ़ने के बाद आप जानेंगे कि pointer क्या होता है, यह काम कैसे करता है, इसके अलग-अलग प्रकार कौन से हैं, और C programming में इसका उपयोग कहाँ-कहाँ होता है। तो चलिए शुरू करते हैं!
Table of Contents
Pointer क्या होता है? (What is a pointer in C?)
Pointer एक ऐसा variable होता है जो किसी दूसरे variable का memory address store करता है। आसान भाषा में कहें तो — pointer खुद कोई value नहीं रखता, बल्कि यह बताता है कि वह value memory में कहाँ रखी हुई है।
Memory Address क्या होता है?
जब आप कोई variable declare करते हैं, तो computer उस variable के लिए memory में एक जगह बनाता है। उस जगह का एक unique number होता है, जिसे memory address कहते हैं।
उदाहरण के लिए:
int age = 25;
यहाँ age variable की value 25 है, लेकिन यह value memory में किसी एक address पर रखी गई है, जैसे कि 1002।
Pointer Declare कैसे करें?
Pointer declare करने का तरीका बहुत सरल है। Variable के type के आगे * (asterisk) लगाना होता है।
Syntax:
datatype *pointer_name;
उदाहरण:
int *ptr;
float *fptr;
char *cptr;
यहाँ ptr एक integer pointer है, जो किसी integer variable का address store कर सकता है।
Pointer का उपयोग — पहला Example
चलिए एक program से समझते हैं ताकि pointer in C programming का concept बिल्कुल साफ हो जाए:
Pointer Program in C:
#include <stdio.h>
int main() {
int number = 50; // A normal variable
int *ptr; // A pointer variable
ptr = &number; // Store the address of number in ptr
printf("Value of number: %d\n", number);
printf("Address of number: %p\n", &number);
printf("Address stored in ptr: %p\n", ptr);
printf("Value using ptr: %d\n", *ptr);
return 0;
}
Note : हर Computer में अलग अलग Memory Address हो सकता है।
| Symbol | मतलब |
|---|---|
| &number | number का memory address |
| ptr | address store करने वाला pointer |
| *ptr | उस address पर जो value है |
- & operator को address-of operator कहते हैं।
- * operator को dereference operator कहते हैं — यह pointer के through actual value तक पहुँचता है।

Pointer के प्रकार (Types of Pointers in C)
C language में pointer कई प्रकार के होते हैं। आइए कुछ Common Pointer को समझते हैं।
1. NULL Pointer
जब कोई Pointer किसी Variable को Point नहीं कर रहा हो, तो उसे NULL से Initialize करना चाहिए और ऐसे Pointer को NULL Pointer कहा जाता है। Pointer Declaration के बाद यदि उसे Initialize नहीं किया जाता, तो उसमें कोई Garbage Memory Address Store हो सकता है। ऐसे Pointer का उपयोग करने पर Program में Undefined Behavior देखने को मिल सकता है, जिससे Program गलत Output दे सकता है या Crash भी हो सकता है।
int *ptr = NULL;
if (ptr == NULL) {
printf(“Pointer किसी address को point नहीं कर रहा।\n”);
}
यह safe programming के लिए बहुत जरूरी है।
2. Void Pointer
Void pointer किसी भी data type का address store कर सकता है। इसे generic pointer भी कहते हैं।
Void Pointer Programme:
#include <stdio.h>
int main() {
void *ptr; // Void pointer can store the address of any data type
int num = 10; // Integer variable
float f = 3.14f; // Float variable
ptr = # // Store the address of num in ptr
printf("Integer: %d\n", *(int *)ptr);
ptr = &f; // Store the address of f in ptr
printf("Float: %.2f\n", *(float *)ptr);
return 0;
}
3. Wild Pointer
जब pointer को declare तो किया गया हो लेकिन कोई address assign न किया गया हो, तो उसे wild pointer कहते हैं। यह dangerous होता है क्योंकि यह किसी Garbage Memory Address को point कर सकता है।
int *ptr; // यह wild pointer है — इसे avoid करें
हमेशा pointer को declare करते समय NULL assign करें या फिर वहीँ Initialize कर दें।
4. Double Pointer (Pointer to Pointer)
एक pointer जो दूसरे pointer का address store करे, उसे double pointer कहते हैं।
Double Pointer Program In C:
#include <stdio.h>
int main() {
int num = 100; // Integer variable
int *ptr = # // Pointer to num
int **dptr = &ptr; // Double pointer to ptr
printf("Value of num: %d\n", **dptr);
return 0;
}
Pointer और Array का संबंध
C programming में array और pointer का बहुत गहरा रिश्ता है। Array का नाम खुद ही उसके पहले element का address होता है।
Pointer Array Program In C:
#include <stdio.h>
int main() {
int marks[] = {85, 90, 78, 92, 88};
int *ptr = marks; // Address of the first element of the array
printf("Array elements using pointer:\n");
for (int i = 0; i < 5; i++) {
printf("marks[%d] = %d\n", i, *(ptr + i));
}
return 0;
}
यहाँ *(ptr + i) pointer arithmetic का उपयोग करके हर element तक पहुँचा जा रहा है।
Pointer और Function (Call by Reference)
Pointer की मदद से हम function में variable की actual value को बदल सकते हैं। इसे call by reference कहते हैं।
बिना Pointer के (Call by Value):
Call by Value Program in C:
#include <stdio.h>
void double_value(int n) {
n = n * 2; // This will not change the original variable
}
int main() {
int num = 10; // Original variable
double_value(num);
printf("Value of num: %d\n", num);
return 0;
}
Pointer के साथ (Call by Reference):
Call by Reference Program in C:
#include <stdio.h>
void double_value(int *ptr) {
*ptr = *ptr * 2; // Change the actual value using the pointer
}
int main() {
int num = 10;
printf("Before: %d\n", num);
double_value(&num);
printf("After: %d\n", num);
return 0;
}
यह C programming में pointer का सबसे उपयोगी application है।
Two Numbers को Swap करना — Pointer Example
यह एक classic example है जो हर beginner को पता होना चाहिए:
Two Number Swap Program:
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a; // Store the value of a in a temporary variable
*a = *b; // Copy the value of b to a
*b = temp; // Copy the temporary value to b
}
int main() {
int x = 5, y = 10;
printf("Before swap: x = %d, y = %d\n", x, y);
swap(&x, &y);
printf("After swap: x = %d, y = %d\n", x, y);
return 0;
}
Pointer और String
C में string एक character array होता है और pointer से string को आसानी से handle किया जा सकता है।
String Pointer Program:
#include <stdio.h>
int main() {
char name[] = "Rahul"; // Character array (string)
char *ptr = name; // Pointer to the first character of the string
printf("Name: ");
while (*ptr != '\0') { // Continue until the null character is reached
printf("%c", *ptr);
ptr++; // Move to the next character
}
printf("\n");
return 0;
}
Dynamic Memory Allocation और Pointer
Dynamic memory allocation में pointer बहुत जरूरी होता है। malloc(), calloc(), realloc() और free() functions pointer के साथ काम करते हैं।
Dynamic Memory Allocation Program:
#include <stdio.h>
#include <stdlib.h>
int main() {
int size = 5; // Number of elements required
// Allocate memory for 5 integers
int *numbers = (int *)malloc(size * sizeof(int));
// Check if memory allocation was successful
if (numbers == NULL) {
printf("Memory allocation failed!\n");
return 1;
}
// Store values in the dynamically allocated array
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;
numbers[3] = 40;
numbers[4] = 50;
// Display array elements
printf("Dynamic Array Elements:\n");
for (int i = 0; i < size; i++) {
printf("numbers[%d] = %d\n", i, numbers[i]);
}
// Free the allocated memory
free(numbers);
return 0;
}
Pointer Use करते समय सावधानियाँ
Pointer बहुत powerful होता है, इसलिए इसे सही तरीके से इस्तेमाल करना जरूरी है।
- हमेशा pointer को initialize करें — declare करते समय NULL assign करें या वहीँ पे Initialize करें।
- memory leak से बचें — malloc के बाद free() जरूर करें
- wild pointer से बचें — बिना address के pointer use न करें
- array की boundary check करें — array से बाहर जाने पर undefined behavior होता है
- NULL check करें — pointer use करने से पहले check करें कि वह NULL तो नहीं है
Conclusion ( निष्कर्ष )
Pointer in C programming में एक बहुत जरूरी कदम है, और आज अपने समझा Pointer in C programming in Hindi में। अगर आप एक अच्छे programmer बनना चाहते हैं। इस post में हमने pointer की पूरी जानकारी सरल भाषा में समझी — pointer क्या है, इसे कैसे declare करें, इसके प्रकार कौन से हैं, array और function के साथ इसका उपयोग कैसे होता है, और dynamic memory allocation में इसकी क्या भूमिका है। हर concept को real code examples के साथ समझाया गया ताकि आपको पूरी clarity मिले।
अब इस post में दिए गए सभी code examples को अपने computer पर run करके देखें। खुद से छोटे-छोटे programs लिखें और pointer को practice करें। अगर कोई सवाल हो या कोई concept समझ न आए, तो नीचे comment जरूर करें। इस post को अपने दोस्तों के साथ भी share करें जो C programming सीख रहे हैं ताकि उन्हें भी इसका फायदा हो।
