¿Cuáles son los errores comunes al programar en lenguaje C básico?
1. Conocimientos básicos, tipos de datos y expresiones 1. {}, [], (), '' y "" no coinciden. La mejor manera de resolver este problema es escribir estos símbolos primero como un par y luego agregar el contenido en el medio. 2. Olvídese de agregar un punto y coma al final de la declaración o agregue puntos y coma adicionales después del comando de preprocesamiento. Recuerde: se debe agregar un punto y coma después de cada declaración y los comandos de preprocesamiento no son declaraciones, por lo que sin punto y coma, deben ser uno por línea y no se pueden escribir varios comandos en una línea. 3. Confunda / y \; el símbolo correspondiente al comentario es /* */, mientras que el carácter de escape comienza con \ y el signo de división es /. 4. La configuración de los parámetros de printf() y scanf() es incorrecta, principalmente en los siguientes aspectos: l Problema de falta de coincidencia de tipos. (Por ejemplo: hay float a = 3.5, pero al generar printf ("a =% d", a);, se mostrará a = 0.00000 en la pantalla o se indicarán otros errores operativos). El principio básico es: float corresponde a% f, int corresponde a% d y char corresponde a% c. Los números no coinciden. No importa qué función sea, puede tener n parámetros. El primero es siempre el contenido encerrado por "", que indica el formato de salida. Los n-1 restantes son las direcciones de variables de salida o variables de entrada. Cabe señalar que si hay n-1 parámetros en la parte posterior, entonces el frente debe corresponder a n-1 especificadores de formato como% f. l Olvidé agregar & antes de la variable en scanf(). Recuerde: debe haber & antes de las variables en scanf() (pero no es necesario agregarlo antes de los nombres de la matriz de caracteres y los punteros que aprenderá más adelante) 5. A menudo se usan caracteres ilegales al definir identificadores. Por ejemplo: no se pueden usar espacios. en identificadores, es decir, no puede existir tal definición: en circunstancias normales, se pueden conectar tres palabras con un guión bajo. 6. La variable no está definida ni inicializada antes de usarla. Por ejemplo: si la suma siguiente no está definida, aparecerá el mensaje de error correspondiente durante la compilación. Si no se inicializa a 0, el resultado de la suma debe ser incorrecto. void main() { int I,a[10], sum=0; /*Siempre que se use a continuación, esta definición debe estar ahí y, en general, debe haber un valor inicial*/ for(I=0;I <10 ;I++) suma+=a[I]; printf(“%d”,suma } 7. Error de cálculo. Notas principales: cuando ++ y -- se operan junto con otros operadores, además del cálculo basado en la prioridad, también se debe considerar el significado especial de la secuencia, la conversión automática que ocurre cuando los tipos de datos son inconsistentes también conducirá al cálculo; errores; también preste atención El signo del resultado del módulo es el mismo que el del dividendo; se utiliza en algunos casos especiales. 8. No se puede dividir por 0 y es necesario verificar su legalidad. 9. Escriba desbordamiento. Recuerde el rango de valores de cada tipo de datos y asegúrese de que los datos estén dentro del rango de tipos definido 10. El formato de la expresión matemática es incorrecto. Los más comunes incluyen: (1) Confusión entre las matemáticas y las expresiones de operación del lenguaje C (por ejemplo: = representa la asignación, mientras que == representa la relación de igualdad en nuestras matemáticas). (2), ignorando la prioridad de las operaciones. La mejor manera de resolver este problema no es escribir expresiones matemáticas de izquierda a derecha, sino en orden de prioridad. Después de escribir una expresión con mayor prioridad, agregue () y luego escriba la expresión del siguiente nivel, por ejemplo: cuando. calcular el área de un trapezoide, s=((a+b)*h)/2, no 1/2*a+b*h (3) Ignore la conversión automática durante el cálculo y la asignación. Por ejemplo: float half=1/2; de esta manera, debido a que el resultado de la división entera en el lado derecho de = es un entero 0, no se obtendrá 0.5 ni se almacenará a la mitad, lo que afectará los resultados del cálculo a continuación. Si no quiere tropezar aquí, al calcular diferentes tipos de datos, debe prestar atención a si habrá conversión automática que cause errores. Se recomienda agregar conversión forzada. (4) El lado izquierdo del número de asignación no es una variable. Por ejemplo: si hay #define PI 3.14, aparece PI=3.14159 en el programa. Otro ejemplo: f (n) = f (n-1) * n (este es un lenguaje matemático típico. En lenguaje C, el producto de la derecha no se puede almacenar correctamente y el de la izquierda es una llamada de función).
11. Olvidé agregar #include.h> antes de usar la función de biblioteca 2. Control de procesos 1. Pierda la marca de final de la declaración ";", especialmente el punto y coma después de la expresión en la declaración for o después de la declaración do- while, o en Agregar ";" después del comando de preprocesamiento, después de while() y for(); 2. Escritura incorrecta de expresiones lógicas o expresiones relacionales en declaraciones If o declaraciones de bucle. Asegúrese de prestar atención a la diferencia entre condiciones y expresiones matemáticas en lenguaje C (por ejemplo, 0≤x≤9, que a menudo escribimos en matemáticas, debe escribirse como x>=0&&x<=9 en lenguaje C). 3. If-else no coincide cuando está anidado. Es mejor usar dos {} para encerrar las dos ramas al escribir cada condición y luego agregar las declaraciones en ellas para garantizar que su coincidencia no sea propensa a errores. 4. El formato de la instrucción switch() es incorrecto. El resultado de la expresión en () debe ser algún valor claro, no un rango; todos los resultados posibles de la expresión deben enumerarse después del caso, hay un espacio entre el caso y la constante, y no se pierde el descanso necesario 5. Modifique el control del bucle a voluntad. El valor de la variable i hace que cambie el número de bucles, especialmente cuando los bucles están anidados. Dentro del cuerpo del bucle, no realice ningún otro cambio en las variables de control del bucle. 6. No está claro cuándo usar un bucle doble y cuándo usar dos variables de control para escribir un bucle único. Cuando I no cambia y j vuelve a realizar un bucle, se utiliza un bucle doble. Cuando I y j cambian al mismo tiempo, se utiliza un bucle. En este momento, hay dos variables de control de bucle, pero solo se puede escribir una condición, porque la otra siempre cambia en consecuencia. 7. Ignore la relación entre el cuerpo del bucle y las variables de control del bucle. De hecho, en muchos casos, las variables de control del bucle juegan un papel muy importante en el cuerpo del bucle. Esta relación debería ser explotada. 3. Matrices y punteros 1. Errores en la entrada de cadenas: se manifiestan principalmente al agregar & cuando se usa scanf() o gets(), o al usar un bucle al ingresar una cadena (en este caso, no importa la longitud del número de caracteres, \0 no se agregará automáticamente y no se podrá citar en forma de cadena en el futuro). 2. Al procesar cadenas, la condición del bucle aún se escribe como I Por ejemplo: En el ejemplo anterior: si se cita el año, debe ser un.cumpleaños.año. No puede ser un.año directamente. 4. Al ingresar y generar las variables de estructura, ingrese como un todo o emita como un todo. . Excepto como parámetros de función, las variables de estructura no se pueden operar como un todo y solo pueden ser entrada y salida miembro por miembro. 5. No comprende la "memoria máxima ocupada" del cliente. Para las variables miembro en el cuerpo del usuario, deben distinguirse mediante una marca y se debe hacer referencia a ellas según diferentes tipos. Recuerde: ***Las variables del cuerpo no se pueden utilizar como parámetros de función. 6. Archivos 1. No abra el archivo antes de usarlo y no lo cierre después de usarlo. 2. El formato de llamada de funciones relacionadas es incorrecto. Asegúrese de que el tipo, el orden y la cantidad de parámetros reales sean consistentes con el prototipo de función (o declaración de función).