Hi Anil,

#a is a preprocessor operator to convert the argument specified as string or
enclosing in double quotes. so, after macro expansion, the printf statement
would become

printf("%d\n",*"432"); =>

printf("%d\n","432"[0]);=>

printf("%d\n",*"4");

which prints the ASCII equivalent 52.


Similarly, using printf("%d\n", "432"[1]),printf("%d\n", "432"[2])
would yield 52 and 51 respectively. Let me know.


Thanks,

Balaji



On Wed, Sep 21, 2011 at 4:34 PM, Anil Arya <anilarya...@gmail.com> wrote:

>
>
>
> #include<stdio.h>
>
> #define  power(a) #a
>
> int main(){printf("%d\n",*power(432));return 0;}
>
> why it is giving 52 as output?
>
>
>
>
>
> --
> *Anil  Arya,
> Computer Science *
> *Motilal Nehru National Institute of Technology,Allahabad .
> *
>
>
>  --
> 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