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 ,
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.
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
Why would attempting the assignment AFTER the value has been printed have any effect whatsoever? Does exit(); really compile for you?