Addition and Subtraction A Number to a Pointer
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPKyBakZ54SZ9g4yNsEY-hJNlaZTjBS9HDE-InzWYa6QcxhLXjJrYJ603R-UN0wqWJc_8yfdTka7d6jeR4xC6aavHUQZs-m-Wr3syyCe_WPvskoQmeYX-qZ1VujJJekG0eOUljFsLEDODDXa1lxx0Jafhg-l8oO0nhW-iKIaNlQTaow78yV2oUiM8S/w640-h480/Addition%20and%20Subtraction%20A%20Number%20to%20a%20Pointer.jpg)
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