Sunday, March 16.

Header Ads

Colorful+Black+Friday+Discount+Leaderboard+Ad

Addition and Subtraction A Number to a Pointer

Muscle+Inc.+%25282%2529

Addition%20and%20Subtraction%20A%20Number%20to%20a%20Pointer


Addition and Subtraction A Number to a Pointer


Program

 


#include<stdio.h>
main()
{
	int j=10,*k;
	k=&j;
	printf("\n The Address of k is%u ",k);
	printf("\n The Value of j is%d ",j);
	k=k+3;
	printf("\n Now The Address of k is%u ",k);
	k=k-3;
	printf("\n Now The Address of k is%u ",k);
	getch();
}


Output

 The Address of k is 65524
 The Value of j is 10
 Now The Address of k is 65530
 Now The Address of k is 65524

इस प्रोग्राम में हमने j का मान 10 Assign किया है और j का address k में Store किया है | k में Stored Address 65524 है | जब हमने k में 3 जोड़ा और k का मान Print किया तो k का मान 65530 हो गया जबकि ये मान 65527 ही होना चाहिए था | ऐसा इसलिए होता है क्योंकि यहां Pointer अपने Scale Factor के अनुसार बढ़ रहा है |

चुंकि k में Stored Address int प्रकार का है , इसलिए k का मान 3 अंक बढाने का मतलब है , k के Address को 3 अंक बढाना और k में Stored Address int प्रकार का होने से ये मान तीन के बजाये 6 बढा है , क्योंकि Pointer Scale Factor के कारण Address Data Type के अनुसार ही Increase या Decrease होता है |

इसी प्रकार से जब k में से 3 घटाया जाता है , तब वास्तव में ये Statement “C” Compiler को बताता है कि k में Stored Address से  Data Type के अनुसार तीन Address पीछे जाना है | यहां int प्रकार का Data Type है | इसलिए Scale Factor के अनुसार k का मान वापस 65530 हो जाता है | इस प्रकार से किसी Pointer में Stored Address का मान Scale Factor के अनुसार घटता या बढ़ता है |

 

 

No comments

Post Top Ad

Post Bottom Ad