02/06/2021
Topic_Name: C programing
Covered_Area: Pointer
âĻ pointer āĻšāϞ āĻāĻāϧāϰāύā§āϰ āĻā§āϰāĻŋā§ā§āĻŦāϞ, C āĻāϰ āĻāĻŽāύ āĻāĻ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āϝāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻāĻāύ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻžāϰ āϏāϰāĻžāϏāϰāĻŋ āĻŽā§āĻŽā§āϰā§āϤ⧠āϰāĻžāĻāĻž āĻ
āύā§āϝ āĻā§āύ āĻā§āϰāĻŋā§ā§āĻŦāϞ āύāĻŋā§ā§ āϝā§āĻā§āύ āĻāĻžāĻ (āĻĄāĻžāĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ, āĻĒāϰāĻŋāĻŦāϰā§āϤāύ,āϏāĻāĻļā§āϧāύ) āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽā§āϰ āĻ
āύā§āĻ āĻāĻāĻŋāϞ āϏāĻŽāϏā§āϝāĻž pointer āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϏāĻšāĻā§āĻ āϏāĻŽāĻžāϧāĻžāύ āĻāϰāĻž āϝāĻžā§āĨ¤
đЏC āϤ⧠āĻā§āύ āĻā§āϰāĻŋā§ā§āĻŦāϞā§āϰ āĻā§āϝāĻžāĻĄā§āϰā§āϏ āĻŦā§āϰ āĻāϰāĻžāϰ āĻāύā§āϝ '&' āĻ
āĻĒāĻžāϰā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§, āϝāĻžāĻā§ address operator āĻŦāϞā§āĨ¤ āĻāĻ operator āĻ operand āĻ
āĻŦāĻļā§āϝāĻ āĻā§āύāĻ āύāĻž āĻā§āύ āĻā§āϰāĻŋā§ā§āĻŦāϞ āĻāĻŋāĻāĻŦāĻž array element āĻšāϤ⧠āĻšāĻŦā§āĨ¤
āĻā§āύ expression (a+b āĻŦāĻž x+3) āĻāĻŋāĻāĻŦāĻž āĻ
āύā§āϝ āĻāĻŋāĻā§ āĻšāϤ⧠āĻĒāĻžāϰāĻŦā§ āύāĻžāĨ¤
đāϝāĻĻāĻŋ s āĻā§āύ āĻā§āϰāĻŋā§ā§āĻŦāϞ āĻšā§, āϤāĻžāĻšāϞ⧠&s āĻšāĻŦā§ s āĻāϰ āĻŽā§āĻŽā§āϰ⧠āĻā§āϝāĻžāĻĄā§āϰā§āϏāĨ¤ āĻāĻāĻžāĻŦā§ āĻā§āύ āĻā§āϰāĻŋā§ā§āĻŦāϞ āĻāϰ āĻŽā§āĻŽā§āϰ⧠āĻā§āϝāĻžāĻĄā§āϰā§āϏ āĻāĻžāύāϤ⧠'&' operator āĻā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§āĨ¤
â āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻĒā§āϰā§āĻŦā§ āĻ
āĻŦāĻļā§āϝāĻ āĻā§āϰāĻŋā§ā§āĻŦāϞ āĻĄāĻŋāĻā§āϞā§ā§āĻžāϰ āĻāϰāϤ⧠āĻšā§,āϝāĻžāϤ⧠āĻāĻŽā§āĻĒāĻžāĻāϞāĻžāϰ āĻŦā§āĻāϤ⧠āĻĒāĻžāϰ⧠āĻĒā§āϰā§āĻā§āϰāĻžāĻŽā§ āĻāĻāĻāĻž pointer āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤ pointer āĻĄāĻŋāĻā§āϞā§ā§āĻžāϰ āĻāϰāĻžāϰ āύāĻŋā§āĻŽāĻ-
data_type *pointer_name ;
āϏāĻžāϧāĻžāϰāĻŖ āĻā§āϰāĻŋā§ā§āĻŦāϞ āĻ pointer āĻā§āϰāĻŋā§ā§āĻŦāϞā§āϰ āĻŽāϧā§āϝ⧠āĻĒāĻžāϰā§āĻĨāĻā§āϝ āĻšāϞ,pointer āĻā§āϰāĻŋā§ā§āĻŦāϞā§āϰ āύāĻžāĻŽā§āϰ āĻāĻā§ '*' āĻā§āϝāĻžāϰā§āĻāĻāĻžāϰāĻāĻž āϞāĻŋāĻāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻ āĻā§āϝāĻžāϰā§āĻāĻāĻžāϰāĻāĻž āĻā§āϰāĻŋā§ā§āĻŦāϞā§āϰ āύāĻžāĻŽā§āϰ āĻāĻŋāĻāĻŦāĻž āĻĄāĻžāĻāĻž āĻāĻžāĻāĻĒā§āϰ āϏāĻžāĻĨā§ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻāĻĻāĻžāĻšāϰāĻŖāĻ-
int *gpa;
āĻāĻŦāĻ int* gpa;
đ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽā§ āĻĄāĻŋāĻā§āϞā§ā§āĻžāϰ āĻāϰāĻž āĻā§āύ āĻā§āϰāĻŋā§ā§āĻŦāϞā§āϰ āĻŽāĻžāύ āϏā§āĻŦā§āĻāĻā§āϰāĻŋā§āĻāĻžāĻŦā§ āύāĻŋāϰā§āϧāĻžāϰāĻŋāϤ āĻšā§āύāĻžāĨ¤ pointer āĻā§āϰāĻŋā§ā§āĻŦāϞ āϏā§āĻŦā§āĻāĻā§āϰāĻŋā§āĻāĻžāĻŦā§ āĻ
āύā§āϝ āĻā§āύ āĻā§āϰāĻŋā§ā§āĻŦāϞāĻā§ āϤāĻĨāĻž āĻā§āϰāĻŋā§ā§āĻŦāϞā§āϰ āĻā§āϝāĻžāĻĄā§āϰā§āϏāĻā§ point āĻāϰā§āύāĻžāĨ¤ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻžāϰāĻā§āĻ āĻŦāϞ⧠āĻĻāĻŋāϤ⧠āĻšā§ āĻāĻžāĻā§ āϏ⧠point āĻāϰāĻŦā§āĨ¤ āĻŽāĻžāύ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰāĻžāϰ āύāĻŋā§āĻŽāĻ
pointer_variable = &variable;
āĻāĻĻāĻžāĻšāϰāĻŖ -
int x, *y; â(y āĻšāϞ int āĻāĻžāĻāĻĒ-āĻāϰ pointer).....
y = &x; â(y, x āĻāϰ āĻā§āϝāĻžāĻĄā§āϰā§āϏāĻā§ point āĻāϰāĻā§)
đ *ptr++ āĻāĻŦāĻ (*ptr)++ āĻāϰ āĻŽāϧā§āϝ⧠āĻĒāĻžāϰā§āĻĨāĻā§āϝ-
đ *ptr++ āĻŽāĻžāύ⧠āĻšāϞ ptr increment āĻšāĻŦā§āĨ¤
đ (*ptr)++ āĻŽāĻžāύ⧠āĻšāϞ ptr āϝāĻžāĻā§ point āĻāϰāĻā§ āϏā§āĻ pointed āĻā§āϰāĻŋā§ā§āĻŦāϞā§āϰ āĻĄāĻžāĻāĻž increment āĻšāĻŦā§āĨ¤
đ āĻāĻāύ āĻāĻŽāϰāĻž pointer āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻā§āĻĄ āĻĻā§āĻāĻŦā§āĨ¤
Input:-
int main()
{ int var = 5;
printf("var: %d\n", var); printf("address of var: %p", &var);
return 0;
}
Output:-
var : 5
address of var : 0xff9753f4
āĻŦāĻŋāĻāĻĻā§āϰāĻ āĻāĻĒāύāĻŋ āĻāĻĒāϰā§āϰ āĻā§āĻĄāĻāĻŋ āĻāĻžāϞāĻžāύā§āϰ āϏāĻŽāϝāĻŧ āϏāĻŽā§āĻāĻŦāϤ āĻāĻāĻāĻŋ āĻāϞāĻžāĻĻāĻž āĻ āĻŋāĻāĻžāύāĻž āĻĒāĻžāĻŦā§āύāĨ¤