Tutorial de aprendizaje básico de C:
Tutorial de C_Video tutorial de C_Tutorial de C
Este vídeo está basado en el aprendizaje del lenguaje C y el lenguaje C por Chuanzhi Sweeping Monk Características A Conjunto de vídeos cuidadosamente grabados. Se divide en cuatro partes: etapa de promoción C, etapa básica C, etapa avanzada C, etapa básica C/C y estructura de datos.
El video de la etapa de mejora de C está dirigido a estudiantes que tienen cierta base en C (se recomienda escuchar el curso básico de Chuanzhi Podcast C Academy antes de aprender este curso); Los videos de C Básico y C Avanzado están grabados para estudiantes sin conocimientos de C, las conferencias son fáciles de entender, fáciles de usar y prácticas de aplicación.
En la etapa básica de la estructura de datos, el vídeo se centra en la practicidad y muestra las aplicaciones típicas de listas enlazadas, colas y árboles en el desarrollo de proyectos. Al estudiar este video, creo que puedes mejorar fácilmente el lenguaje C y comenzar a utilizarlo rápidamente.
Descripción general del vídeo
Primera parte: Etapa de mejora
1) Presentación de los estándares de aprendizaje del lenguaje C, diseño e implementación de la API de la interfaz del lenguaje C, presentación de los estudiantes; ' estándar de escucha.
2) Conferencias especiales sobre modelo de memoria de programa y modelo de llamada de función. El contenido incluye: análisis esencial de tipos de datos, tamaños de tipos de datos, alias y encapsulación de tipos de datos; análisis esencial de variables y métodos para modificar variables. Comprensión profunda del modelo de memoria del programa, análisis de casos del área de montón, área de pila, área global y área de código. Modelo de llamada de función, variables en la pila y ciclo de vida de cada variable de función.
3) Charla sobre la construcción de un sistema de conocimiento puntero. El contenido implica: Los punteros también son un tipo de datos; la asignación indirecta (*p) es de gran importancia para la existencia de punteros y las condiciones y la importancia de ingeniería de las asignaciones indirectas. La deducción de los punteros de nivel 0 a la tecnología de punteros de nivel N; la comprensión de los punteros debe combinarse con el concepto de partición de memoria; la aplicación de punteros debe combinarse con llamadas a funciones y las características de entrada y salida de los punteros.
4) Tema especial sobre cadenas y modelo de memoria de punteros de primer nivel. El contenido incluye: operaciones básicas de cadenas, modelo de memoria de puntero de primer nivel de cadenas, cadenas como parámetros de función, modelos de desarrollo comunes de cadenas, modelos de cadenas propensos a errores y modificadores constantes.
5) Charla especial sobre punteros secundarios (matriz de punteros, matriz bidimensional, puntero de matriz). El contenido incluye: entrada y salida de puntero de dos niveles, puntero de dos niveles como entrada, tres modos de memoria, reproducción de puntero multidimensional; nombre de matriz multidimensional, tipo de matriz, tipo de puntero de matriz, análisis esencial de la variable del puntero de matriz; Matriz multidimensional, matriz de punteros y puntero multinivel Los punteros de nivel resuelven el problema de la degradación de los parámetros de la función.
6) Conferencias sobre mejora estructural. El contenido incluye: la base de operación de la estructura, los parámetros de función de la estructura, el primer puntero de la estructura, el segundo puntero de la estructura, la copia profunda y la copia superficial de la estructura, y el desplazamiento del tema avanzado de la estructura. .
7) Temas sobre cómo mejorar las operaciones de archivos, que incluyen: conceptos básicos de archivos, operaciones de archivos (por carácter, bloque y binario, control de archivos), caso de proyecto 1: lectura y escritura de archivos de configuración, caso de proyecto 2: Cifrado y descifrado de archivos.
8) El tema de la encapsulación y el diseño de la interfaz C involucra: los conceptos básicos de las bibliotecas dinámicas, la construcción del entorno de depuración de la biblioteca dinámica, el diseño y la implementación de las funciones API de la biblioteca dinámica, el registro de la biblioteca dinámica y la memoria. detección de fugas.
9) Tema de mejora de listas enlazadas, que incluye: los conceptos básicos de las listas enlazadas, la creación, eliminación, inserción, recorrido, destrucción e inversión de listas enlazadas tradicionales y una introducción a la construcción de una lista enlazada. sistema de conocimiento.
Parte 2: Conceptos básicos de C
1) Conferencia ampliada de C C. El contenido incluye: conceptos básicos de orientación a objetos, la relación entre el lenguaje C y el lenguaje C, espacio de nombres e iostream, C Mejoras prácticas, detección de variables globales, mejora de detección de tipos, mejora de funciones de registro, mejora de estructuras, nuevo tipo de datos bool, mejora de triple operador. Seminario const (falsificación del lenguaje C y mecanismo de tabla de símbolos C), comparación de const y #define; Const modifica las variables miembro de la clase y las funciones miembro.
Conferencia sobre citas (el concepto de cita, análisis de la esencia de la cita, principios del uso de la cita, el valor de retorno de la función es referencia, el valor de retorno de la función es valor l). Extensiones de funciones de C a C (funciones en línea, parámetros predeterminados, parámetros de marcador de posición, sobrecarga de funciones).
2) Temas básicos sobre clases y objetos, que cubren: aprendizaje de conceptos básicos de C, rutas técnicas y estándares de aprendizaje, encapsulación de clases y casos de transformación de orientado a procesos a orientado a objetos.
3) Temas detallados sobre clases y objetos: el contenido incluye: sintaxis básica de constructores y destructores, clasificación de constructores, momento de llamada a constructores de copia, investigación sobre reglas de llamada de constructores, investigación de secuencia de llamadas de constructores y destructores. copia profunda y copia superficial; objetos anónimos (ciclo de vida de objetos anónimos, entrenamiento intensivo de objetos anónimos), aplicación y liberación dinámica de objetos, variables miembro estáticas y funciones miembro estáticas. Modelo de objetos C (analice cómo el compilador de C gestiona las variables miembro, las funciones miembro y este puntero). Funciones de amigos y tipos de amigos. Caso del proyecto: clase de matriz, etc.
4) Tema de sobrecarga de operadores. El contenido incluye: los tipos personalizados requieren sobrecarga de operadores, y las funciones amigas y funciones miembro implementan la sobrecarga de operadores de 2 y 1 elemento. Escenarios de aplicación de sobrecarga de operaciones de funciones amigas. Entrenamiento de dificultad de sobrecarga del operador (=, (), [], *, - gt; etc.). Sobrecarga de operadores: clase de matriz, clase de cadena.
5) Temas de herencia y derivación. El contenido involucra: casos de herencia, control de acceso de clases derivadas, construcción y destrucción en herencia (principio de compatibilidad de tipos, construcción y destrucción en herencia, variables miembro y funciones del mismo nombre en herencia, palabras clave estáticas en herencia). Herencia múltiple (concepto de herencia múltiple, ambigüedad, análisis del principio de solución de herencia virtual).
6) Temas polimórficos. El contenido incluye: a) Nuevos requisitos orientados a objetos, soluciones polimórficas proporcionadas por la compilación de C, el significado del polimorfismo y las tres condiciones para el polimorfismo (herencia, reescritura de funciones virtuales, punteros/referencias de clase principal que apuntan a objetos de subclase), polimórfico Bases teóricas (enlace estático y enlace dinámico). b) Mejora de las preguntas de la entrevista polimórfica (comprensión polimórfica, sobrecarga, reescritura y redefinición, por qué hay un destructor virtual, si llamar a una función virtual en un constructor puede lograr polimorfismo, el tamaño de paso de los punteros principales y de subclases, etc.).C ) Explore los principios del polimorfismo (punteros vptr y tablas de funciones virtuales, inicialización paso a paso de punteros vptr, diseño avanzado del compilador de C).
7) Funciones virtuales puras y preguntas abstractas. El contenido involucra: el concepto de clases abstractas, la aplicación de clases abstractas en herencia múltiple, casos de programación orientada a clases abstractas: casos de marco de sistemas de información empresarial que integran productos de terceros. Programación orientada a interfaz C y C (efectos polimórficos de punteros de función como parámetros de función, análisis de ideas de funciones de devolución de llamada, caso: actualización de la biblioteca dinámica de C al caso del marco C). Utilice escenarios simples para demostrar tecnologías complejas en el desarrollo de proyectos, lo que facilita principiantes Comience y aplíquelo en la práctica.
Parte 3: C Edición Avanzada
8) Temas especiales sobre plantillas de funciones y plantillas de clases. El contenido incluye: plantillas de funciones y plantillas de funciones como base gramatical de los parámetros de funciones, plantillas de funciones y sobrecarga de funciones juntas, y análisis de la esencia de las plantillas de funciones. Sintaxis de plantilla de clase, ordene el sistema de conocimiento de la sintaxis de plantilla de clase, la plantilla de clase cumple con las palabras clave estáticas. Caso de plantilla de clase: caso de lista enlazada C.
9)C Otros mecanismos. El contenido incluye: a)a)c (descripción general de flujos, flujos y buffers, objetos de E/S estándar, redirección de flujos estándar, uso de cin como entrada, otras funciones miembro de cin, uso de cout para salida, símbolos de control, etiquetas y formato instrucciones, entrada y salida de archivos, procesamiento de archivos binarios y de texto). B) Mecanismo de excepción C (idea básica de excepciones, uso de bloques try y catch, lanzamiento de excepciones, jerarquía de excepciones, excepciones y plantillas). C) Cuatro tipos de conversiones de c (usando static_cast,dynamic_cast e identificación de tipo de tiempo de ejecución, reinterpret_cast, const_cast).
10) Temas prácticos sobre desarrollo STL.
El contenido incluye: tipo de cadena STL, conceptos básicos de STL (contenedores, iteradores, algoritmos), clasificación de contenedores, vectores de contenedores secuenciales, deque, contenedores de pila, listas de contenedores de listas doblemente enlazadas, conjuntos y conjuntos múltiples de contenedores asociados, mapeo/mapa múltiple de contenedores asociados, pares, algoritmos (buscar, ordenar, copiar y reemplazar, aritmética y generación, conjuntos, etc.). Casos de uso típicos de STL.
11) Temas comunes de plantillas de diseño: el contenido incluye: conceptos de patrones de diseño, patrón único, patrón de fábrica, patrón de agente, patrón de iteración, etc. y la expresión de clases y relaciones de clases en UML.
12) Comprender los punteros inteligentes, que cubren: qué son los punteros inteligentes, cómo implementarlos, tipos de punteros inteligentes, utilizando STD::auto_ptr;
Parte 4: C/C y conceptos básicos de estructura de datos.
1) Conceptos básicos de estructuras de datos (conceptos de estructura de datos, conceptos básicos de algoritmos y medición de algoritmos)
2) Temas de listas vinculadas, que involucran: diseño e implementación de almacenamiento secuencial de listas vinculadas , Diseño e implementación de almacenamiento de listas enlazadas (lista enlazada unidireccional, lista enlazada circular, lista enlazada doblemente), versión C y versión C.
3) Tema de pila, que involucra el diseño y la implementación de almacenamiento secuencial de pila y almacenamiento en cadena de pila, versión C y versión C; Casos típicos de aplicación de pila: expresiones infijas y expresiones postfijas.
4) Tema de colas, que involucra el diseño e implementación del almacenamiento de secuencia de colas y el almacenamiento de cadena de colas. Versión C y versión C.
5) Las preguntas sobre árboles y árboles binarios involucran: el concepto y representación de árboles, el recorrido de árboles binarios (en orden, primer orden, último orden), ejercicios básicos de árboles (encontrar hojas, copiar árboles , profundidad del árbol, etc.), recorrido no recursivo de árboles, pistas de árboles, árboles binarios óptimos (árboles de Huffman).
6) Tema de clasificación, que cubre: conceptos básicos de clasificación, selección, burbujeo, algoritmo de inserción, Hill, rápido y fusión.