1. We have moved from vBulletin to XenForo and you are viewing the site in the middle of the move. Though the functional aspect of everything is working fine, we are still working on other changes including the new design on Xenforo.
    Dismiss Notice

regarding const pointer

Discussion in 'C' started by answerme, Dec 19, 2007.

  1. answerme

    answerme New Member

    Code:
    int i=10;
    	const int ci=123;
    	const int *cpi;
    	int *ncpi;
    	cpi=&ci;
    	printf("Main cpi  %d\n",*cpi);
    	ncpi=&i;
    	printf("Main ncpi %d\n",*ncpi);
    	cpi=ncpi;
    	printf("second %d\n",*cpi); 
    	ncpi=(int *)cpi;
    	printf("%d\n",*ncpi);
    	[B]*ncpi=0;[/B]
    	exit();
    My question is why *ncpi =0 ,
     
  2. Salem

    Salem New Member

    Can you post a complete program, including
    - the main(),
    - the include files,
    - how you compiled it,
    - and what you saw on the output (copy/paste from your console).

    For instance, C and C++ handle 'const' differently.
     
  3. answerme

    answerme New Member

    Code:
    #include<stdio.h>
    main()
    {
    	int i=10;
    	const int ci=123;
    	const int *cpi;
    	int *ncpi;
    	cpi=&ci;
    	printf("Main cpi  %d\n",*cpi);
    	ncpi=&i;
    	printf("Main ncpi %d\n",*ncpi);
    	cpi=ncpi;
    	printf("second %d\n",*cpi); 
    	ncpi=(int *)cpi;
    	printf("%d\n",*ncpi);
    	*ncpi=0;
    	exit();
    }
    output
    Code:
    Main cpi  123
    Main ncpi 10
    second 10 
    10
    
    if it dont include *ncpi=0 it gives the same result
     
  4. Salem

    Salem New Member

    Why would attempting the assignment AFTER the value has been printed have any effect whatsoever?

    Does exit(); really compile for you?
     
  5. answerme

    answerme New Member

    its a book example ,thats why i asked why it is required to do so ,even i couldnt get that
     

Share This Page