Cuando crea una matriz, digamos de enteros, significa que crea un bloque en el que almacena 100 números. Básicamente es como si crearas 100 variables, solo que afortunadamente no necesitas nombrarlas todas. En cambio, el programa tomó un trozo de memoria de 100 enteros largos y decidió que arr es la dirección (más precisamente el puntero si conoce los punteros) al primero de ellos, gracias a que le permite referirse a cualquiera de ellos usando el nombre arr: arr [0] es el primer número, aquel cuya dirección se llamó arr, arr [1] es el siguiente: el programa sabe dónde está el número a qué dirección se llamó arr y toma el número al lado, etc.
Entonces, ¿qué significaría agregar uno a arr? Bueno, debería significar que obtienes la dirección del siguiente valor, es decir, la dirección de arr [1]. Y eso está perfectamente bien, puedes comprobar que a C ++ no le importará que agregues 1, o cualquier otro número, al arr. arr + 5 es una expresión válida, lo que significa que obtiene la dirección (puntero a) del elemento arr [5].
Creo que es muy probable que eso sea lo que querías preguntar de hecho. Pregunte por qué no puede agregar 1 a arr? Entonces, para eso, la respuesta es: “seguro, puedes”, pero ++ es algo más que simplemente sumar 1. No está sumando 1 a algún número, está _cambiando_ este número al aumentarlo en uno. Si creó un arreglo arr, está hecho, lo ha creado y tiene un arreglo llamado arr que comienza y termina en algún lugar específico. Intentar hacer arr ++ significaría que ahora quieres que la misma matriz comience en un lugar diferente, eso es lo que significa “arr” después de todo, ¿no? Es la dirección donde comienza la matriz, por lo que hacer arr ++ significaría que desea que comience en un lugar diferente. Sin embargo, puede hacer arr + 1, lo que significaría que arr todavía comenzará en el mismo lugar, pero que quien obtenga la dirección “arr + 1” y la interprete como una matriz pensará que su matriz comienza desde su segundo elemento (llamado arr [1]). Esto tiene mucho sentido, si tiene 100 números en una matriz, puede decirle a alguien que lo interprete como una matriz de 99 números que comienza en un lugar más, pero el hecho de que lo haya interpretado de esta manera no debería cambiar el hecho (lo que intenta do arr ++ hubiera cambiado) que la matriz “arr” todavía existe en el mismo lugar donde se creó.
- ¿Cómo se usa el hashing para la integridad?
- ¿Por qué la complejidad temporal de los algoritmos de Edmond Karps O (VE ^ 2)? A mí me parece O (E * (E + V)).
- ¿Cuál es la aplicación en tiempo real de árboles y gráficos en estructuras de datos?
- ¿Por qué es necesario conocer la complejidad temporal de un programa?
- ¿Cuál es una explicación simple del algoritmo del modelo oculto de Markov?