Free tutorials & notes in Hindi & English · Clean code examples · Mobile friendly learning
Free tutorials in Hindi & English Daily computer, mobile and IT guides Beginner friendly learning
Blog · C Pointers · 03 Jul 2026 · Hindi + English

C में Pointer क्या है? Definition, Syntax और पहला Program

C में pointer एक variable है जो दूसरे variable का memory address store करता है. Declaration, & और * operators और पहला pointer program सीखें.

What is a pointer?

Definition: A pointer in C is a variable that stores the memory address of another variable — not the value itself, but the location where the value lives.

Think of memory as a colony of houses. A normal variable is a house containing a value. A pointer is a slip of paper on which the house address is written. Using the address, you can reach the house and read or change what is inside.

Declaration syntax

data_type *pointer_name;

int   *p;    /* pointer to int    */
float *fp;   /* pointer to float  */
char  *cp;   /* pointer to char   */

The * in the declaration says "this variable holds an address of that type", it is not multiplication here.

The two key operators: & and *

OperatorNameMeaning
&xAddress-ofGives the memory address of variable x
*pDereference / value-atGives the value stored at the address held in p

Your first pointer program

#include <stdio.h>

int main() {
    int marks = 85;
    int *p = &marks;        /* p stores the address of marks */

    printf("Value of marks   : %d\n", marks);
    printf("Address of marks : %p\n", (void*)&marks);
    printf("Value in p       : %p\n", (void*)p);
    printf("Value at *p      : %d\n", *p);

    *p = 95;                 /* change marks THROUGH the pointer */
    printf("New marks        : %d\n", marks);
    return 0;
}
Value of marks : 85 Address of marks : 0x7ffd51a3c2b4 Value in p : 0x7ffd51a3c2b4 Value at *p : 85 New marks : 95

Notice the last two lines: we never touched marks directly, yet its value changed to 95 — because *p = 95; wrote into the same memory location.

Why do pointers exist? (4 real reasons)

  • Call by reference: a function can modify the caller's variable — this is how scanf("%d", &x) works.
  • Dynamic memory: malloc() returns a pointer; without pointers there is no runtime memory allocation.
  • Arrays and strings: array names decay to pointers; all string handling is pointer-based.
  • Data structures: linked lists, trees and graphs are impossible without pointers connecting nodes.

Pointer क्या है?

Definition: C में pointer एक ऐसा variable है जो दूसरे variable का memory address store करता है — value नहीं, बल्कि वह location जहां value रहती है.

Memory को घरों की एक colony समझें. Normal variable एक घर है जिसमें value रहती है. Pointer एक पर्ची है जिस पर उस घर का address लिखा है. Address से आप घर तक पहुंचकर अंदर की चीज़ पढ़ या बदल सकते हैं.

Declaration syntax

data_type *pointer_name;

int   *p;    /* pointer to int    */
float *fp;   /* pointer to float  */
char  *cp;   /* pointer to char   */

Declaration में * कहता है "यह variable उस type का address रखता है" — यहां यह multiplication नहीं है.

दो key operators: & और *

OperatorNameमतलब
&xAddress-ofVariable x का memory address देता है
*pDereference / value-atp में रखे address पर stored value देता है

आपका पहला pointer program

#include <stdio.h>

int main() {
    int marks = 85;
    int *p = &marks;        /* p में marks का address */

    printf("Value of marks   : %d\n", marks);
    printf("Address of marks : %p\n", (void*)&marks);
    printf("Value in p       : %p\n", (void*)p);
    printf("Value at *p      : %d\n", *p);

    *p = 95;                 /* pointer के THROUGH marks बदलें */
    printf("New marks        : %d\n", marks);
    return 0;
}
Value of marks : 85 Address of marks : 0x7ffd51a3c2b4 Value in p : 0x7ffd51a3c2b4 Value at *p : 85 New marks : 95

आखिरी दो lines देखें: हमने marks को direct touch नहीं किया, फिर भी value 95 हो गई — क्योंकि *p = 95; ने उसी memory location में लिखा.

Pointers क्यों होते हैं? (4 real कारण)

  • Call by reference: function caller का variable modify कर सकता है — scanf("%d", &x) ऐसे ही काम करता है.
  • Dynamic memory: malloc() pointer return करता है; pointers के बिना runtime memory allocation नहीं.
  • Arrays और strings: array names pointers में decay होते हैं; सारी string handling pointer-based है.
  • Data structures: linked lists, trees और graphs — nodes को जोड़ने वाले pointers के बिना impossible हैं.

Frequently Asked Questions

C में pointer एक line में क्या है?

Pointer एक variable है जो दूसरे variable का memory address store करता है, जिससे उसकी value को indirectly access किया जा सकता है.

Pointers के साथ & और * का क्या मतलब है?

& variable का address देता है (address-of operator), और * किसी address पर stored value देता है (dereference operator).

C में pointer का size क्या होता है?

Size system पर depend करता है, data type पर नहीं: 64-bit systems पर आमतौर पर 8 bytes और 32-bit पर 4 bytes — int*, char* और float* सबका same.