Resumen de los puntos de conocimiento del "Lenguaje C" en el examen de nivel 2 de computadora (3)

Capítulo 6

La esencia de las variables de puntero es almacenar direcciones, mientras que las variables generales almacenan valores.

La diferencia entre *p y p en int *p:

*p se puede utilizar como variable; la función de * es tomar el valor en la dirección posterior p.

p se utiliza como dirección.

*p++ y (*p)++: Corregir preguntas incorrectas es muy importante.

*p++ indica que la dirección cambiará.

(*p)++ es el valor que se va a cambiar.

Doctrina de las tres personas: (enfoque del examen)

Nombre de la matriz: indica la dirección del primer elemento. Los nombres de las matrices no se pueden agregar por sí solos.

Es un nombre que nunca cambia. (Hice la prueba muchas veces)

Nombre de la función: indica la dirección de entrada de esta función.

Nombre de constante de cadena: representa la dirección del primer carácter.

Capítulo 7

1 Conceptos importantes de matrices unidimensionales;

Discusión sobre la matriz a[10].

1, a representa el nombre de la matriz, que es la dirección del primer elemento, es decir,

La dirección del elemento a [10].

2.a es una dirección constante, por lo que siempre que aparezca a++ o

a=a+2 se asigne incorrectamente.

3.a es el nombre de una matriz unidimensional, por lo que es un puntero de columna. En otras palabras,

decir a+1 es un salto de columna.

Discusión de un[3][3].

1, a representa el nombre de la matriz, que es la dirección del primer elemento, es decir,

La dirección del elemento a [10].

2.a es una dirección constante, por lo que siempre que aparezca a++ o

a=a+2 se asigne incorrectamente.

3.a es el nombre de una matriz bidimensional, por lo que es un puntero de fila. En otras palabras,

significa que a+1 significa omitir una línea.

4.a[0], a[1] y a[2] también son constantes de dirección y no se pueden verificar.

Realiza operaciones de asignación, todos son punteros de columna, a[0]+1,

A[1]+1, a[2]+1 saltan a una columna .

5. Tenga en cuenta que A es diferente de a[0], a[1] y a[2], y sus

tipos básicos son diferentes. La primera es una fila de elementos y las tres últimas son una columna de elementos.

Habilidades de resolución de problemas con matrices bidimensionales;

Si hay un [3] [3] = {1, 2, 3, 4, 5, 6, 7, 8 , 9} .

Paso 1: Escríbelos de la siguiente manera:

Primera columna, segunda columna y tercera columna

a[0]? 123->;Primera línea

a[1]? 4 5 6?& gtPreparación

¿Respuesta [2]? 7 8 9->;Tercera línea

Paso 2: Hacer esto es muy simple:

*(a[0]+1) sabemos que es el primero en el primero elemento de línea.

Salte una columna, luego este es el elemento a[0][1], por lo que es 1.

*(a[1]+2) Sabemos que el primer elemento de la segunda fila está detrás.

Saltar dos columnas. Entonces este es el elemento a[1][2], entonces 6.

Asegúrate de recordar: siempre que sea una pregunta de matriz bidimensional, debe escribirse así

En términos de formato, será mucho más fácil hacer la pregunta. pregunta de nuevo.

Inicialización de matriz, unidimensional y bidimensional, unidimensional no se puede escribir,

Se debe escribir el segundo bidimensional.

Int a [] = {1, 2} es legal. Int a [] [4] = {2, 3, 4} legal.

Pero int a [4][] = {2, 3, 4} es ilegal.

Puntero de fila en una matriz bidimensional

int a[1][2];

Donde A ahora es el puntero de fila, a+1 omite un elementos de matriz de fila.

Con el puntero (*)p[2]

A[0], a[1] ahora son punteros de columna. A[0]+1 salta a una matriz.

Elemento. Se utiliza con la matriz de punteros *p[2].

Recuerda las reglas para quitarte la ropa:

A[2] se convierte en *(a+2) a[2][3] se convierte en *(a+2)[3 ] Entonces

se puede cambiar a *(*(a+2)+3)