Red de conocimiento informático - Consumibles informáticos - Haga algunas preguntas sobre el lenguaje C a las que muchas personas no han prestado atención.

Haga algunas preguntas sobre el lenguaje C a las que muchas personas no han prestado atención.

Para ser honesto, mientras la gente entienda estas preguntas, ¿cómo podrían no entenderlas? Mucha gente no presta atención, lo que significa que aún no lo han aprendido. Por supuesto que no estoy alardeando, también soy un principiante, pero todavía me siento triste por la gente de arriba.

1. Necesita conocer la estructura del programa en la memoria, incluida el área de pila, el área de montón, el área constante literal, el área de variable global y el área de función. a = " xxx";

Tal declaración inicializa el puntero a, "xxx" se almacenará en el área constante literal, luego a es un puntero al área constante literal, ¿cómo se le puede permitir cámbielo con scanf. Sin mencionar cambiarlo, ni siquiera es posible usar un puntero para agregarlo usted mismo.

2. No digas que está definido dentro de la estructura, incluso si lo defines fuera, ¿puedes probar lo siguiente?

char name[20];

name = "xxx";

La variable de nombre es un puntero. ¿Cuál es el propósito de asignar una constante literal al puntero?

Debes saber que char name[20] = "xxx" es solo un método de asignación especial para matrices.

Si realmente quieres asignar valores como este, puedes usar memcpy

memcpy(name, "xxx", 3*sizeof(char));

3. Tu oración Las palabras son correctas. Siempre que fp abra un archivo correctamente y realmente haya datos en el archivo, fscanf definitivamente leerá los datos por usted, pero recuerde que la función fscanf terminará cuando encuentre un espacio, un retorno de carro, etc., por lo que Puede que no necesariamente lea el archivo donde se lee.

4. Desafortunadamente, el estándar C no especifica unos pocos bytes para datos de tipo int y cada compilador tiene su propia implementación. El int predeterminado en MSVC es de 4 bytes, pero la versión anterior de TurboC es de dos bytes. Es por eso que la "Guía de segmentación de programación de Google" recomienda utilizar tipos básicos con longitudes determinadas en el archivo de encabezado stdint.h, como int16_t, uint32_t, int64_t. Debe tener 2 bytes, 4 bytes u 8 bytes, lo cual es conveniente. para todos los Porting debajo de la plataforma.

Mientras pueda ayudarte, no me importan los puntos. Si no sabes cómo engañar a los discípulos de otra persona sólo por unos pocos puntos, sería un gran pecado.