DIY sysex fader box status and questions. - Pointers

ToAd tom.adam at thebigear.be
Sat May 5 16:48:06 CEST 2012


  OK, never mind, I think I got it.
Cheers,
ToAd

On 5/05/2012 16:14, ToAd wrote:
> OK pointers...
> I'm reading " Emdebbed C programming and the atmerl AVR " by Barnett, 
> Cox and O'Cull.
>
> I understand this:
> char *p;
> char a,b;
> p=&a; //p equals the address of a
> b=*p;  // b equals the value pointed to by p
> result: b=a
> and this:
> char *p;
> char a,b;
> p=&a;
> *p=b;  //the location pointed to by p is set to the value of b
> result: a=b
>
> OK, now this:
> char c;
> char *p;
>
> c = *p++;
> assign c the value pointed to by p, and then increment the address of p.
> What address? I don't know the address! What values is there? Since 
> it's a machine address I'm guessing it's the char "next to it", but 
> how do I know what is "next to it"?
>
> c=*++p;
> increment the address p, then assign c the value pointed to by p.
> Idem
>
> c=++*p;
> increment the value pointed to by p, then assign it to c. So p is not 
> changing here, this one I understand ;-)
>
> c=(*p)++;
> assign c the value pointed to by p, then increment the value pointed 
> to by p, leaving p untouched.
> so the value pointed to by p is changed, so if i ask for *p in my 
> program again, the retuned value will have changed. This looks 
> interesting.
>
> Any help appreciated.
>
> ToAd



More information about the music-bar mailing list