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.