char *cstr1="hello"; char s[]="tick"; cstr1=s; for(y=0;y<4;y++) { cout<<" "<<*(cstr1+y)<<" "<<(*cstr1)++; } OUTPUT: u t i u c v k w and if it is char *cstr1="hello"; char s[]="tick"; cstr1=s; for(y=0;y<4;y++) { cout<<" "<<*(cstr1+y); } OUTPUT IS : t i c k how can dis be possible plz somone help
The problem is in the use of the post-increment operator. Don't use it until you are completely familiar with its use because it will confuse you...............exactly as it just has done.
in *(cstr1+y) here the adress is incremented by the value of y (i.e 1,2,3,4) and the memory location in the adress is displayed but in (*cstr1)++ here the adress is incremented by the value of y (i.e 1,1,1,1) and the memory location in the adress is displayed so there is a change in adress location that why so confusing..................