Thats because you have swapped pointers and printing variables.
On Mon, Oct 29, 2012 at 11:22 PM, rahul sharma <[email protected]>wrote:
> I have taken form book...i am writing exact code
>
> #include<stdio.h>
> #define swap(a,b,c) c t;t=a,a=b,b=t;
>
>
> int main()
> {
> float a,x;
> a=20.0;
> x=30.0;
> float *p,*q;
> p=&a,q=&x;
> swap(p,q,float*);
> printf("%f %f",a,x);
> getchar();
> }
>
> o/p=20.000 30.000
>
>
> why not swapped???
> On Mon, Oct 29, 2012 at 11:01 PM, atul anand <[email protected]>wrote:
>
>> if you think the your expanded version is incorrect.You are wrong ,
>> because int * will hold pointer but you are not allocating address of
>> x ..instead you are allocating x value as an address of x to *t.This
>> wont work.
>> so to make it work you need to save the address of x and y in temp
>> pointers i.e
>>
>> int *p.*q;
>> p=&x;
>> q=&y;
>> int t;
>> t=*p;
>> *p=*q;
>> *q=t;
>> now you can convert it into macro.
>>
>> On 10/29/12, rahul sharma <[email protected]> wrote:
>> > @atul...mistakenly i have put w at place of t in my last post...i wana
>> say
>> >
>> >
>> >
>> > On Mon, Oct 29, 2012 at 10:07 AM, dCoder <[email protected]> wrote:
>> >
>> >> Just replace your macro with its definition and you will understand.
>> >>
>> >> its not doing swapping of pointers...plz explain
>> >>
>> >
>> >
>> > @dCode i expanded..but its fine...please tell
>> >
>> >> #include<stdio.h>
>> >> #define swap(a,b,c) c t;t=a,a=b,b=t
>> >>
>> >> int main
>> >> int x=10,y=20;
>> >> int *p,*q;
>> >> swap(x,y,int*);
>> >>
>> > int * t;
>> > t=x;
>> > x=y;
>> > y=t;
>> >
>> >
>> > There is int* at the end..there is som problem with my
>> > keyborad...:(.........acc to me axpanded version is above..but not
>> swapping
>> > two pointerss....plz comment
>> >
>> >
>> >
>> >
>> >> On Sun, Oct 28, 2012 at 9:16 PM, rahul sharma
>> >> <[email protected]>wrote:
>> >>
>> >>> its now doing swapping of pointers...plz explain
>> >>>
>> >>>
>> >>> On Sun, Oct 28, 2012 at 8:08 PM, atul anand
>> >>> <[email protected]>wrote:
>> >>>
>> >>>> it should swap....
>> >>>>
>> >>>> On 10/28/12, rahul sharma <[email protected]> wrote:
>> >>>> > Why the following code is not able to swap two macros???although it
>> >>>> > is
>> >>>> > easily swapping 2 variables
>> >>>> >
>> >>>> > #include<stdio.h>
>> >>>> > #define swap(a,b,c) c t;t=a,a=b,b=t
>> >>>> >
>> >>>> >
>> >>>> > int main
>> >>>> >
>> >>>> >
>> >>>> > int x=10,y=20;
>> >>>> > int *p,*q;
>> >>>> >
>> >>>> > swap(x,y,int);
>> >>>> >
>> >>>> > --
>> >>>> > You received this message because you are subscribed to the Google
>> >>>> Groups
>> >>>> > "Algorithm Geeks" group.
>> >>>> > To post to this group, send email to [email protected].
>> >>>> > To unsubscribe from this group, send email to
>> >>>> > [email protected].
>> >>>> > 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 [email protected].
>> >>>> To unsubscribe from this group, send email to
>> >>>> [email protected].
>> >>>> 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 [email protected].
>> >>> To unsubscribe from this group, send email to
>> >>> [email protected].
>> >>> 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 [email protected].
>> >> To unsubscribe from this group, send email to
>> >> [email protected].
>> >> 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 [email protected].
>> > To unsubscribe from this group, send email to
>> > [email protected].
>> > 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 [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> 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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.