Cuando se tiene una matriz o puntero, p+x
es equivalente a &p[x]
. Entonces MY_STRING + 2
es equivalente a &MY_STRING[2]
: da la dirección del tercer carácter en la cadena.
Aviso lo que sucede cuando se agrega 0. MY_STRING + 0
es lo mismo que &MY_STRING[0]
, ambos de los cuales son los mismos que la escritura simplemente MY_STRING
ya que una cadena de referencia no es más que un puntero al primer carácter de la cadena. Afortunadamente, entonces, la operación de identidad "agregar 0" no es operativa. Considere esto como una especie de prueba de unidad mental que podemos usar para verificar que nuestra idea sobre lo que +
significa es correcta.
¿Qué es lo que no tiene un compilador? – rook
A veces, pedir Stack Overflow es más rápido que intentarlo en un compilador ... – Joe
¿Más rápido? http://codepad.org/VRZvcphU Me tomó todos los 60 segundos ... – bta