c++ doubt

Go4Expert Member
11Oct2011,02:10   #1
dreskei's Avatar
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
Mentor
12Oct2011,02:50   #2
xpi0t0s's Avatar
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.
Banned
28Oct2011,23:00   #3
sura's Avatar
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..................
Go4Expert Member
1Nov2011,03:47   #4
dreskei's Avatar
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