Primera introducción al lenguaje C: primera introducción a punteros y estructuras

1. Espacio de almacenamiento en la computadora: comprenda qué es una dirección

Al comprar una computadora, generalmente escuchamos cuántos gigabytes tiene la computadora, la primera parte representa la memoria y la última parte representa su disco duro .

 

 El lenguaje C que aprendemos es un lenguaje de alto nivel y su capa inferior es lenguaje ensamblador, que en realidad es lenguaje de máquina binario.

El lenguaje de máquina es un lenguaje que una computadora puede leer y comprender directamente.

Cuando descargamos software, también podemos encontrarnos con diferentes versiones de software, como las adecuadas para ordenadores de 32 bits y las adecuadas para ordenadores de 64 bits. Una computadora de 32 bits significa que el tamaño de una dirección es de 32 bits y una computadora de 64 bits significa que el tamaño de una dirección es de 64 bits.

A continuación tomamos como ejemplo una computadora de 32 bits:

Si queremos acceder a la memoria, ¡necesitamos la dirección para encontrar la unidad de memoria!

¿Cómo es? ¿No es asombroso? Después de comprender la dirección, ¡podemos comenzar a introducir sugerencias!

2. Primera comprensión de los punteros

2.1 Creación de variables de puntero

Introdujimos la dirección antes, ahora damos el puntero:

Número de memoria = dirección = puntero

Introduzcamos dos símbolos más que se utilizarán a continuación:

& : obtiene el carácter de dirección

* : carácter de desreferencia

Lo que hay que tener en cuenta aquí es:

(1) El tipo de datos de la variable de puntero ap debe ser el mismo que el tipo de datos de un 

(2) El puntero recibe la dirección de la variable, por lo que debemos tomar la dirección de la variable y colocarla en el lado derecho de =, que utilizará el operador de dirección &

(3) El * antes de ap indica que ap es una variable de puntero. Si no hay *, ¿cómo sabes que representas un puntero? En lugar de decir que su puntero es *ap. Por lo tanto, también le sugiero que registre directamente el tipo de datos del puntero como int*, double*...

(4) Cuando llamamos al puntero, debemos agregar un * antes del nombre de la variable del puntero ap. Este * representa el carácter de desreferencia. Por ejemplo, la variable del puntero ap es un candado y se necesita una llave* para abrir el candado. .

2.2 Tamaño de las variables de puntero 

2.2.1 Revisión

Primero recordemos el tamaño de la memoria ocupada por los diferentes tipos de datos:

Puede ver que diferentes tipos de datos ocupan diferentes espacios de memoria, la unidad de memoria representada a la derecha es el byte. 

2.2.2 Tamaño del puntero

Las variables de puntero se utilizan para almacenar direcciones, por lo que el tamaño del puntero depende del tamaño de la dirección.

En una máquina de 32 bits, el tamaño del puntero es de 32 bits, que son 4 bytes.

En una máquina de 64 bits, el tamaño del puntero es de 64 bits, que son 8 bytes.

consejos: puede cambiar entre máquinas de 32 bits y máquinas de 64 bits en VS  cuando cambiamos a máquinas de 32 bits

 El tamaño de cada puntero será de 4 bytes.

 3. Primera comprensión de las estructuras. 

Después de una comprensión general del lenguaje C, podemos darnos cuenta de que los valores que se pueden crear en el lenguaje C son demasiado simples. Cuando tenemos factores como nombre, edad, altura, peso, etc. en la vida real, ¿cómo ¿Utilizamos el lenguaje C para representar estos factores? Existen estructuras: herramientas que nos permiten describir objetos complejos en lenguaje C.

3.1 Creación de estructura

La creación de la estructura debe situarse por encima de la función principal.

struct stu{

};

struct es una palabra clave que le dice al compilador que desea crear una estructura; stu significa que le da un nombre al cuerpo de la función. Este nombre suele ser significativo y fácil de entender, y luego puede crear la información que desee entre llaves.

Luego puede definir su estructura en la función principal.

 Struct stu es la estructura que definimos antes. Cuando realmente la usas, aunque stu es el nombre que le das a la estructura, aún debes nombrar cada pieza de información que usa la estructura, por lo que struct stu puede considerarse como tu autodefinido . El tipo de datos es el mismo que otros tipos de datos int y double. La sintaxis usa tipo de datos + denominación, es decir, estructura stu s1.

La sintaxis para ingresar información de la estructura es nombre de la estructura + {}, y la información en el medio está separada por comas . Luego puede ingresar la información de la estructura s1 en secuencia de acuerdo con la definición de la estructura.

3.2 Impresión de información de estructura.

¿Qué debo hacer a continuación si quiero imprimir la estructura?

En la función printf, imprima cada información en la estructura en secuencia. Después de las comillas dobles, ingrese el nombre que le dio a la variable de estructura y luego agregue  "." VS mostrará automáticamente las palabras clave de la información en  la estructura.

Es decir: variables de estructura.miembros de estructura

 3.3 Cuerpo de la función de recepción de puntero

3.3.1 Gramática

En el uso de punteros, mencionamos que podemos memorizar directamente punteros para nombrar estructuras de datos*

Al nombrar estructuras, mencionamos que las estructuras definidas arriba de la función principal se pueden usar directamente como tipos de datos.

Combinándolo podemos obtener la sintaxis: struct stu * p=&s1.

 3.3.2 Estructura de impresión

A diferencia de los no punteros, la sintaxis de una estructura que imprime punteros se convierte en: puntero de estructura -> miembro de estructura

 cuatro, terminado

Supongo que te gusta

Origin blog.csdn.net/m0_75186846/article/details/131270395
Recomendado
Clasificación