Resumen: comience a aprender matrices, funciones y conceptos relacionados esta semana, incluida la definición de matriz, la asignación de matriz, la definición de función, la declaración de prototipo de función, el tipo sin valor vacío
Revisión detallada:
La matriz debe declarar el tipo, indicando el tipo de elementos en la matriz, y también debe declarar la longitud. Una vez que se completa la declaración de longitud, no se puede cambiar (se pueden usar variables para representar la longitud en el estándar C99)
Cuando se ejecuta el lenguaje C, se ejecutará secuencialmente. Si la función no se declara con anticipación, la declaración supuesta se adivinará durante el proceso de ejecución, lo que puede causar conflictos y fallas de compilación. En este momento, la declaración del prototipo de función se puede usar para resolver el problema, o se puede escribir el bloque de código definido por la función para resolver antes de hacer referencia a la función.
La declaración de prototipo se refiere a: el tipo que contiene la definición de función, el tipo de parámetro de la definición de función, punto y coma, como, void func(int a, double, int c);tenga en cuenta que no es necesario definir parámetros específicos, solo se requiere el tipo de parámetro
Cuando una función devuelve un valor, el tipo de retorno declarado debe ser coherente.
Para una matriz bidimensional, el método de declaración es el siguiente: int a[][3]; int arr[3][3];asegúrese de prestar atención a la longitud de la columna declarada
La función f() puede aceptar parámetros, pero f(void) indica claramente que no acepta parámetros
Lección siete
Resumen: el contenido de esta semana aprende sobre los cálculos relacionados con matrices, principalmente el cálculo de longitud, la búsqueda y la clasificación.
detalle:
Cálculo de longitud: función sizeof(); como int a[]; length len=sizeof(a)/sizeof(a[0]), porque los elementos de la matriz son consistentes, tamaño total/tamaño de un solo elemento==longitud*
Los arreglos bidimensionales pueden tener asignaciones continuas, como int a[][2]={1,2,3,4}; equivalente a int a[][2]={{
1,2},{3, 4 }};
La posición se puede especificar al asignar una matriz, y otras posiciones de subíndice que no se especifican se rellenan con 0, como int a[3] = {[1]=1,2} es equivalente a int a[3]= {0,1,2};
La estructura struct{} puede personalizar el tipo de datos del elemento, de modo que diferentes tipos de datos pertenezcan a la misma estructura
Lección 8
Resumen: esta semana, aprenderé principalmente los conceptos básicos de los punteros y las cadenas del lenguaje C.
detalle:
Puntero, que indica la dirección de memoria de los datos, usando char *p; definido de esta manera
Las variables de matriz son punteros especiales, y la ubicación de memoria del primer elemento de la matriz es la misma que la ubicación de memoria del puntero de la matriz.
La ubicación de la memoria del puntero se puede imprimir usando el marcador de posición %p
'&' + nombre de variable puede representar la dirección del puntero de una variable existente, y * es un operador indirecto, que es una referencia a un puntero, que indica el objeto o la función a la que apunta el puntero.
La forma de expresión de una cadena en la memoria es una matriz de caracteres, donde el último elemento es '\0';
Las funciones de operación de cadenas, como strlen, strcmp, strncpy, strncat, etc., necesitan importar archivos de encabezado include "string.h"(consejos: marque con comillas dobles para buscar primero en el directorio actual y luego busque en el directorio de la biblioteca estándar, mientras que <> significa directamente buscar en el directorio de la biblioteca estándar)
La definición de cadena puede usar la forma de puntero char *s="abc"; la forma de matriz char s[]="abc";