¿El lenguaje C define el tipo de carácter?
El tipo de carácter del lenguaje C puede representar un solo carácter, el tipo de carácter es char, char es de 1 byte (puede almacenar letras o números), varios caracteres se denominan cadenas, que se utilizan en la cadena de la tabla de matriz de caracteres del lenguaje C. array no es un tipo de datos básico, es un tipo construido. char array puede contener una cadena. char* puede apuntar a una cadena. Si lo desea, puede definir typedefchar*string; /p>
Tipo de carácter en lenguaje C
Los datos de caracteres en lenguaje C se dividen en dos categorías: datos de caracteres y cadenas. **Los datos de caracteres se refieren a un solo carácter entre comillas simples, **como 'a', '2', '&', etc. Los datos de cadena se refieren a una cadena de secuencias de caracteres entre comillas dobles, como " bueno ", "0132", "a", etc.
1. Definición de tipo básico
Especificador de tipo: char
2. Almacenamiento y rango de valores de datos de caracteres
Carácter El rango de valores El tipo de datos son los caracteres imprimibles en el juego de caracteres del código ASCII. El almacenamiento de datos de un carácter ocupa 1 byte. Al almacenar, lo que realmente se almacena es el valor del código ASCII del carácter correspondiente (es decir, un valor entero).
Codificación ASCII (código estándar americano para intercambio de información) Código estándar americano para intercambio de información:
El código ASCII utiliza una combinación numérica binaria especificada de 7 u 8 bits para representar 128 o 256 caracteres posibles. El código ASCII estándar, también llamado código ASCII básico, utiliza números binarios de 7 bits para representar todas las letras mayúsculas y minúsculas, los números del 0 al 9, los signos de puntuación y los caracteres de control especiales utilizados en inglés americano.
Entre ellos:
0~31 y 127 (***33) son caracteres de control o caracteres de comunicación especiales (el resto son caracteres visualizables), como el carácter de control: LF ( avance de línea), CR (retorno de carro), FF (cambio de página), DEL (eliminar), BS (retroceso), BEL (timbre), etc., caracteres especiales para comunicación: SOH (encabezado de texto), EOT (fin); de texto), ACK (Confirmar), etc.; los valores ASCII 8, 9, 10 y 13 se convierten en caracteres de retroceso, tabulación, avance de línea y retorno de carro respectivamente. No tienen una visualización gráfica específica, pero tendrán diferentes efectos en la visualización del texto según la aplicación.
32~126 (***95) son caracteres (32 es un espacio), de los cuales 48-57 son diez números arábigos del 0 al 9.
Los números 65-90 son 26 letras inglesas mayúsculas, los números 97-122 son 26 letras inglesas minúsculas y el resto son algunos signos de puntuación, símbolos aritméticos, etc.
Tenga en cuenta también que en ASCII estándar, su bit más alto (b7) se utiliza como bit de paridad. La llamada verificación de paridad se refiere a un método utilizado para verificar si se producen errores durante la transmisión del código. Generalmente se divide en dos tipos: verificación impar y verificación par. Reglas de paridad impar: el número de unos en un byte del código correcto debe ser un número impar. Si no es un número impar, agregue 1 al bit más alto b7; reglas de paridad par: el número de unos en un byte del código correcto. El código correcto debe ser un número par, si no es un número par, suma 1 al bit más alto b7.
Los últimos 128 se denominan códigos ASCII extendidos. Muchos sistemas basados en x86 admiten el uso de ASCII extendido (o "alto"). ASCII extendido permite utilizar el octavo bit de cada carácter para determinar 128 caracteres de símbolos especiales, letras de idiomas extranjeros y símbolos gráficos adicionales.
3. Método de representación de los datos de los caracteres
Los datos de los caracteres se almacenan en la computadora en forma binaria del valor del código ASCII del carácter. El almacenamiento de un dato de carácter ocupa 1 byte. . **Debido a que el código ASCII tiene un formato de número entero entre 0 y 255, los números de caracteres y los números enteros en lenguaje C se pueden usar indistintamente. **Por ejemplo, el valor del código ASCII del carácter 'a' es 1100001 en representación binaria y 97 en representación decimal. La forma de almacenamiento del carácter 'a' es en realidad un número entero 97, por lo que se puede operar directamente con números enteros. , Puede asignar valores a variables enteras y también puede generar datos de caracteres en forma de caracteres o números enteros.
Cuando se genera en forma de carácter, el valor del código ASCII se convierte primero en el carácter correspondiente y luego se genera en forma de número entero, el valor del código ASCII se utiliza directamente como salida.
El lenguaje C proporciona tres tipos de caracteres en sintaxis, a saber, char, signedchar y unsignedchar. La longitud binaria es de 8 bits y el rango de valores es
-128, -. 128-127, 0~255. Si no se especifica el tipo de variable de carácter, el valor predeterminado es el tipo de carácter firmado. Debido a que los datos de caracteres se utilizan principalmente para procesar caracteres, no se pueden modificar con modificadores de tipo largo o corto.
Datos de carácter:
Un número de un solo carácter encerrado entre comillas simples. Como 'A', '%', ':', '9', etc., y '12' o 'abc' son caracteres ilegales.
Datos de cadena:
Un carácter simple o una cadena de caracteres entre comillas dobles, como "bueno", "0132", "w1", "a", etc. Tenga en cuenta que "a" es una cadena y no una cantidad de caracteres.
Para facilitar que el programa C determine si la cadena termina, el sistema agrega un indicador de fin al final de cada cadena cuando la almacena: el operador nulo '' con un valor de código ASCII de 0,
No provoca ninguna acción ni muestra resultados, por lo que el número de bytes almacenados en una cadena debe ser la longitud de la cadena más 1.
No se puede crear una variable de tipo cadena en C porque "cadena" no es un tipo.
Por definición, una "cadena" "termina con el primer carácter nulo y " Una secuencia continua de caracteres, incluido el primer carácter nulo". No es un tipo de datos, sino un formato de datos.
La matriz de caracteres puede contener una cadena. char* puede apuntar a una cadena. Ninguno de ellos son cadenas.
Si lo desea, puede definirlo
1. El nombre del tipo de carácter es char
2. El tipo de carácter contiene 256 enteros, cada uno. Un número entero puede representar un carácter (como 'd', '&', etc.), y estos números enteros y caracteres son completamente intercambiables
3 La correspondencia entre todos los números enteros y caracteres se enumera en ASCII. tabla de códigos
'a'97
'A'65
'0'48
4. Todas las letras minúsculas en inglés en el La tabla de códigos ASCII está organizada de forma continua, 'a' corresponde al número entero más pequeño y 'z' corresponde al número entero más grande
5. Todas las letras mayúsculas en inglés y los caracteres de números arábigos también cumplen con esta regla
'd'-'a' es igual a 'D'-'A'
'd'-'a' es igual a '3'-'0' es igual a 3-0
6. Todos los datos de caracteres se dividen en dos grupos, cada grupo es 128. La correspondencia entre un grupo de caracteres y números enteros es la misma en todas las computadoras. Los números enteros correspondientes a estos caracteres varían de 0 a 127
<. p>7. Además, la correspondencia entre un conjunto de caracteres y números enteros puede ser diferente en diferentes computadoras. Los números enteros correspondientes a estos caracteres pueden variar de -128 a -1 o de 128 a 255'. 'Carácter de nueva línea
''Carácter de retorno de carro
'''' carácter
'"' carácter
'"'" carácter
8. El nombre del tipo de entero corto es corto. Este tipo contiene 65536 enteros diferentes, la mitad de los cuales son números negativos y la otra mitad son números no negativos. y se extiende a ambos lados.
9. Largo El nombre del tipo entero es largo. Este tipo contiene 2 elevado a 32 enteros diferentes, la mitad de los cuales son números negativos y la otra mitad no. -Números negativos. Estos números están centrados en 0 y se extienden a ambos lados.
10. El nombre del tipo de entero es int. En nuestra computadora, el tipo de entero y el tipo de entero largo son exactamente iguales.
11. tipos
12. Cada tipo firmado tiene un tipo sin firmar correspondiente. El nombre del tipo sin firmar se agrega sin firmar (como unsignedchar, unsignedint, etc.) antes del nombre del tipo firmado.
13. Cada tipo sin signo El número de números contenidos en el tipo simbólico es el mismo que el del tipo con signo correspondiente, excepto que no contiene números negativos
14. en todos los tipos de datos relacionados con enteros se superponen entre sí y se expanden gradualmente
15 Agregue u después de un número sin punto decimal en el programa para indicar que el tipo de número es un tipo entero sin signo
16. El tipo de punto flotante se utiliza en lenguaje C para representar un número con un punto decimal
17. Los tipos de punto flotante se dividen en tipos de punto flotante de precisión simple y tipos de punto flotante de doble precisión.
18. Los tipos de punto flotante de doble precisión pueden registrar más dígitos después del punto decimal.
19. El nombre del tipo de punto flotante de precisión simple es flotante.
20. El nombre del tipo de punto flotante de doble precisión es doble
21. Los números con puntos decimales en el programa son de forma predeterminada el tipo de punto flotante de doble precisión. 22. Si se agrega f después de un número con un punto decimal, significa que el tipo de número es un tipo de punto flotante de precisión simple
23 Se pueden crear nuevos tipos de datos en lenguaje C. El tipo de datos creado se denomina tipo de datos compuesto. El tipo de datos compuesto debe crearse primero antes de poder usarse
24. El tipo booleano se introdujo en la especificación C99. de los cuales 0 se llama falso y 1 se llama verdadero. y falso se llaman valores booleanos
25. Cualquier número entero en lenguaje C se puede usar como valor booleano. y todos los demás números enteros son verdaderos cuando se usa un valor booleano
26. No es necesario usar tipos booleanos en el programa. Correspondencia entre tipos de datos y marcadores de posición
1. char y unsignedchar%c
2. short%hd
3. >4.int%d
5. unsignedint%u
6.long%ld
7. float%f o %g
9. El doble %lf o %lg
%f y %lf conservarán el 0 no válido después del punto decimal, %g y %lg lo harán. no retenerlo
28 Diferentes tipos Una de las principales diferencias entre las áreas de almacenamiento es la cantidad de bytes que contienen
29. La palabra clave sizeof se puede utilizar para calcular la cantidad de bytes. contenido en un área de almacenamiento
char y unsignedchar1 byte
short y unsignedshort2 bytes
int y unsignedint4 bytes
long y unsignedlong4 bytes
flotante 4 bytes
doble 8 bytes
30 Los contenidos que se pueden utilizar como números se pueden escribir entre paréntesis después del tamaño de la palabra clave
/*
*demostración de la palabra clave sizeof
**/
#include
intmain(){
intnum=0;
printf("tamañode(int) es %d",sizeof(int));
printf("sizeof(num) es %d",sizeof(num));
printf("sizeof(6+ 7) es %d",tamañode(6+7));
tamañode(num=10)
);
printf("num es %d",num);
return0;
}