& isn't even the dereference operator, right? That's what gives you the pointer. * gives you the value at the pointer. I guess that's why it's preferable, in English it reads nicely and describes exactly what it does. `val arg = @(argv + 1)` reads like "val arg is the value at argv + 1"
I always read & as "at" mentally when reading code :)
I read it as "address of" but @ definitely works if we are talking about an address. The value is @x
whoops you are correct. interesting, thanks
As anecdote, my brain parses it more easily because I read "at", so I automatically interpret the expression as an address. Like "get the value at argv+1"