When i use the commands:
print/x &_start -> i get: 0x08049054
print/x &_key -> i get: 0x0804916d
It is quite easy to figure out that the difference is: 119h
But if i use the command:
print/x &_key-&_start -> i get: 0x46 (!!)
Why? Does anyone confirm this if debug a program of his own?
What you see is pointer arithmetic.
See also: SO:Pointer Arithmetic