subíndice de matriz C / C ++ puede ser negativo

Hoy en día se encontró con C / C ++ índice de matriz puede ser negativo, era muy extraño. Por lo general, escribir el código, el subíndice está empezando desde cero, sin tener esto en cuenta. código de prueba de escritura un poco, en realidad pasó. Pero el valor es un desastre. Pero si usted anota el valor subyacente en el rango de la matriz, se puede dar salida a un valor correcto.

Un int [5.] = {1,2,3,4,5};
 int * ptr1 = (int *) (A + & 1.);
 
  La printf ( "% X, X%,", ptr1 [-1]);
1
2
3
4
el resultado es cinco;
posteriormente, se comprueba que Internet sea un poco, pensó un momento, me siento en realidad bastante normal. El subíndice de una matriz de punteros array cabeza se está moviendo realmente, en C / C ++ compilador hay límites de la matriz de cheques. Por ejemplo anterior, una salida [6] No está mal, pero el valor de un lío de ella.
De hecho, esta función en el desarrollo de casi menos, la razón es que el C / C ++ perezoso. En Java o el CO, se les está dando.


 

Publicados 351 artículos originales · ganado elogios 52 · vistas 190 000 +

Supongo que te gusta

Origin blog.csdn.net/u014644594/article/details/104008785
Recomendado
Clasificación