output depends on sizeof(int)....so it may be different if you run on
different compilers.

considering *sizeof(int) = 2;*

argv[] is array of pointers.
  (p+=sizeof(int))[-1];
p=p+2 // 2=sizeof(int);

now p will be pointing at index *argv[2];
then you are doing....

p=p-1;

i.e p will point to *argv[1]

hence output will be
o/p = cd

On Thu, Jan 26, 2012 at 10:53 PM, rahul sharma <rahul23111...@gmail.com>wrote:

> #include<stdio.h>
> #include<conio.h>
> void fun(char **);
>
> int main()
> {
>     char *argv[]={"ab","cd","de","fg"};
>     fun(argv);
>     getch();
>     return 0;
> }
>
> void fun(char **p)
> {
>      char *t;
>      t=(p+=sizeof(int))[-1];
>      printf("%s\n",t);
> }
>
> o/p: fg
>
> can nyone xplain
>
> the 2nd statement in fun?????
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to algogeeks@googlegroups.com.
> To unsubscribe from this group, send email to
> algogeeks+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to