C tipo de idioma de una matriz de dos dimensiones, & a, & a [0], a [0] [0] y el valor del valor

El valor y la importancia de la lengua matriz bidimensional c en algunas expresiones de problemas


Dos días antes de escribir el código cuando se trataba de preguntas acerca de la matriz, y luego una matriz bidimensional de un pensamiento profundo. Pienso en una cuestión interesante.

En la matriz de dos dimensiones a, & a, & a [0], & a [0] [0] valores de salida son el mismo significado que representa ¿Por qué no hace lo mismo?Aquí Insertar imagen Descripción

Aquí para explicar & a, & a [0], & a [0] [0] su significado, y a representa la dirección de toda la matriz de dos dimensiones, & a [0] representa la dirección de una matriz bidimensional de la primera línea, y un [ 0] [0] representa la primera línea de una dirección de matriz primer elemento bidimensional, a continuación, por lo que sus valores son los mismos, pero el significado que lo expresan, pero no es lo mismo?

En la práctica estos valores no son idénticos, son de la misma en valor, que son completamente diferentes tipos, como por ejemplo, con un tipo de int tipo char 1 es completamente diferente.
Con el fin de explicar los diferentes valores de su tipo, tomamos un ejemplo se describirá.

Aquí Insertar imagen Descripción
Se puede observar en la figura, aunque los valores de estas tres expresiones son las mismas en valor, pero después de que fueran 1 para el cálculo, el valor resultante es completamente diferente.
Sabemos que el puntero es una dirección de valor de la variable, por lo que podemos poner estos valores que son valores de puntero, y & a + 1, y un [ 0] + 1, y un [0] [0] 1 puede considerarse como un indicador de más una operación. Puntero más una regla matemática es añadir un valor de puntero de la variable de puntero en la unidad, hay una gama tan amplia de puntero int p apunta al primer elemento de esta matriz, el valor del puntero P es la dirección de la primera serie de variable int , el p + resultado int es la dirección de la segunda matriz de la variable 1.
Vamos a explicar un conocimiento, unidimensional malloc gama algo de memoria puede entonces ser asignado a un puntero a lograr, y una matriz de dos dimensiones se puede lograr de dos maneras puntero es un puntero a un puntero a dos, más que un puntero que apunta un elemento. Por lo tanto, podemos puntero de la manera de entender la matriz.

&un

A es una matriz de dos dimensiones, se puede entender como un puntero a una de dos, y los dos y a es la dirección del puntero, puede entenderse como un puntero a un valor que es tres punteros. Así, el ejemplo adicional descrito anteriormente tipo y un valor de int ***, que se refiere al tipo de la variable int **, de modo & a + 1 es la siguiente dirección int **, es decir, la dirección después de toda la matriz de dos dimensiones.

& A [0]

El mismo, a [0] es la primera línea de una matriz de dos dimensiones, puede ser entendido como un puntero a una, así & a [0] es un puntero al valor de sus dos punteros, el tipo y a [0] valor es int **, el tipo de variable se denomina int *, por lo que & a [0] 1 int * es la siguiente dirección, es decir, la dirección de la segunda fila de la matriz de dos dimensiones.

& A [0] [0]

a [0] [0] es un elemento de tipo int, & a [0] [0] es un puntero a un valor del puntero, y una [0] [0] es el valor de tipo int *, en referencia a las variables tipos son int, & a [0] [0] 1 es la siguiente dirección int, es decir, la primera dirección de la fila de las segundas variables de matriz de dos dimensiones.

En este artículo se explica este tema a parar aquí, para algunos errores que puedan existir, para dar la bienvenida a todos los lectores señalaron.

Publicado cuatro artículos originales · ganado elogios 3 · Vistas 180

Supongo que te gusta

Origin blog.csdn.net/humblehunger/article/details/103549535
Recomendado
Clasificación