Header Ads

ad728
  • New Updates

    Addition and Subtraction A Number to a Pointer



    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

    ad728

    Post Bottom Ad

    ad728