c++ doubt

dreskei's Avatar, Join Date: Oct 2010
Go4Expert Member
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
xpi0t0s's Avatar, Join Date: Aug 2004
Mentor
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.
sura's Avatar
Banned
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..................
dreskei's Avatar, Join Date: Oct 2010
Go4Expert Member
Quote:
Originally Posted by xpi0t0s View Post
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.
hmm ok ll learn more abt it