Hablando de los tipos de datos básicos del lenguaje C

Sugerencia: Una vez escrito el artículo, la tabla de contenido se puede generar automáticamente. Para saber cómo generarlo, consulte el documento de ayuda a la derecha.


Prefacio

Clasifique el contenido de aprendizaje.

Tipos de datos básicos en lenguaje C

1 unidad

Antes de hablar sobre los tipos de datos básicos, primero debemos comprender la unidad de almacenamiento de la computadora.
En primer lugar, una computadora se compone de circuitos lógicos. El circuito lógico generalmente tiene solo dos estados, el encendido y apagado del interruptor. Estos dos estados se pueden representar por "1" y "0". Por lo tanto, la computadora utiliza información de almacenamiento binaria. La cantidad de información contenida en un bit binario se llama bit y un bit es la unidad de información más pequeña.
A continuación, hablemos de otras unidades de almacenamiento, desde pequeñas hasta grandes.

 1Byte=8Bit  表示范围 :2^n(n代表比特位数),也就是0~255个无符号整数 or -128~127个有符号整数
 1KB=1024Byte   
 1MB=1024KB
 1GB=1024MB
 1TB=1024GB
 1PB=1024TB

Explique el rango de representación de 1 byte (Byte) de una manera fácil de entender y observe los ocho números binarios a continuación (de menor a mayor, 1 bit representa 1 número binario), el superior es 00000000 y el inferior es 00000001 , Lo que significa dos estados. Dado que el estado de cada bit es solo 0 o 1, hay dos estados según la permutación y combinación:> 1 número binario, 4 estados para 2 números binarios y 8 estados para 3 bits. Para este tipo de pregunta, 8- bit número binario Hay 2 ^ 8 estados para un número. Dado que comienza desde 0, el número sin signo que puede representar es 0 ~ 255.

00000000
00000001

2. Tipos de datos básicos

A continuación, hablemos de los tipos de datos. Los tipos de datos básicos en lenguaje C son los siguientes:

基本数据类型						     大小        表示范围
char          //字符数据类型     1Byte		 0~2^8-1个无符号数
short         //短整型 			2Byte		 0~2^16-1个无符号数
int           //整形			4Byte		 0~2^32-1个无符号数   	C中整数默认为int型
long          //长整型			4Byte		 0~2^32-1个无符号数	(不同的系统和编译器的大小可能会是8Byte)
long long     //更长的整形		8Byte		 0~2^64-1个无符号数
float         //单精度浮点型     4Byte		 0~2^32-1个无符号数
double        //双精度浮点型     8Byte 		 0~2^32-1个无符号数      C中浮点数默认为double型

Para las variables enteras (firmadas por defecto), puede usar sin firmar (número sin firmar), firmado (número firmado) para modificar. P.ej:

 unsigned char a = 128;

También podemos sizeof(类型名)obtener el tamaño del tipo de datos imprimiendo . P.ej:

#include<stdio.h>

int main()
{
    
    
	printf("char的大小是%d个字节\n", sizeof(char));
	printf("int的大小是%d个字节\n", sizeof(int));
	printf("long的大小是%d个字节\n", sizeof(long));
	printf("long long的大小是%d个字节\n", sizeof(long long));
	printf("float的大小是%d个字节\n", sizeof(float));
	printf("double的大小是%d个字节\n", sizeof(double));
	return 0;
}

Los resultados del código anterior que se ejecuta en VS2017 de 32 bits son los siguientes:
Inserte la descripción de la imagen aquí

Los amigos que han estudiado otros lenguajes de programación pueden encontrar que los tipos de datos anteriores no mencionan el tipo de cadena (cadena), entonces, ¿puede el lenguaje C representar cadenas? La respuesta es Sí. En lenguaje C, char 字符串名[]= "字符串内容"una cadena se define mediante -> .

3. ¿Por qué hay tantos tipos?

  1. Porque para diferentes objetos, los diferentes tipos de datos son más representativos.
  2. Debido a que el tamaño y el rango de representación de cada tipo de datos son diferentes, y se asignan diferentes espacios a cada tipo, se puede lograr el propósito de ahorrar espacio.
  3. Es conveniente para el almacenamiento y procesamiento de computadoras.

4.parámetros de transferencia de printf ()

Cuando printf pasa los parámetros, si es de plástico, pasará cuatro bytes por defecto. Dado que printf es una función de parámetro variable, el tipo de los parámetros subsiguientes es desconocido, por lo que no importa el tipo que ingrese, printf solo lo hará Dependiendo en el tipo, se almacenará en dos longitudes diferentes. Entre ellos, 8 bytes son solo long long, float y double (tenga en cuenta que float se procesará como doble y luego se pasará), y los otros tipos son todos de 4 bytes. Entonces, aunque el tipo de a + b es char, en realidad se recibe con un entero de cuatro bytes. Además, al leer, los métodos enteros como% lld y% llx y los métodos de punto flotante como% f y% lf leen 8 bytes, y otros leen 4 bytes.

para resumir

Las anteriores son algunas de las notas que resumí sobre los tipos de datos básicos del lenguaje C. ¡Damos la bienvenida a correcciones suplementarias por deficiencias!

Supongo que te gusta

Origin blog.csdn.net/weixin_47460769/article/details/111354068
Recomendado
Clasificación