I tipi di dati C
Nel linguaggio C, tipo di dati si riferisce a una vasta gamma di sistemi per tipi differenti variabili o dichiarazione di funzione. Tipo della variabile determina lo spazio di archiviazione variabili occupato, e come interpretare le sequenze di bit memorizzati.
C può essere suddivisa nelle seguenti categorie:
序号 | 类型与描述 |
---|---|
1 | 基本类型: 它们是算术类型,包括两种类型:整数类型和浮点类型。 |
2 | 枚举类型: 它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。 |
3 | void 类型: 类型说明符void表明没有可用的值。 |
4 | 派生类型: 它们包括:指针类型、数组类型、结构类型、共用体类型和函数类型。 |
tipo Array e struttura del tipo denominato tipi come aggregati. Tipo della funzione si riferisce al tipo di valori di ritorno delle funzioni. Nella prossima sezione di questo capitolo introdurremo il tipo di base, altri tipi spiegheranno nella parte posteriore alcuni capitoli.
tipo integer
Nella tabella seguente sono elencati i dettagli sui tipi interi standard di formati di archiviazione e di intervalli di valori:
类型 | 存储大小 | 值范围 |
---|---|---|
char | 1 字节 | -128 到 127 或 0 到 255 |
unsigned char | 1 字节 | 0 到 255 |
signed char | 1 字节 | -128 到 127 |
int | 2 或 4 字节 | -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 |
unsigned int | 2 或 4 字节 | 0 到 65,535 或 0 到 4,294,967,295 |
short | 2 字节 | -32,768 到 32,767 |
unsigned short | 2 字节 | 0 到 65,535 |
long | 4 字节 | -2,147,483,648 到 2,147,483,647 |
unsigned long | 4 字节 | 0 到 4,294,967,295 |
Si noti che le dimensioni dei vari tipi di sistemi di stoccaggio relativi al numero di bit, ma un sistema generico 64 bit basati.
Qui ci sono le differenze tra i 32-bit e la dimensione della memoria di sistema a 64 bit (Windows lo stesso):
Al fine di ottenere un tipo di una variabile o la dimensione esatta su una particolare piattaforma, è possibile utilizzare l'operatoresizeof.Espressionesizeof (tipo)per dare un oggetto o un tipo di byte di archiviazione. L'esempio seguente mostra Get dimensione tipo int:
#include <stdio.h> #include <limits.h> int main() { printf("int 存储大小 : %lu \n", sizeof(int)); return 0; }
Quando si compila in Linux ed eseguire il programma di cui sopra, esso produrrà i seguenti risultati:
int 存储大小 : 4
a galleggiante
Nella tabella seguente sono elencati i dettagli circa la virgola mobile dimensione di archiviazione di tipo standard, campo di valori e precisione:
类型 | 存储大小 | 值范围 | 精度 |
---|---|---|---|
float | 4 字节 | 1.2E-38 到 3.4E+38 | 6 位小数 |
double | 8 字节 | 2.3E-308 到 1.7E+308 | 15 位小数 |
long double | 16 字节 | 3.4E-4932 到 1.1E+4932 | 19 位小数 |
file di intestazione float.h definisce le macro possono essere utilizzate nel programma e altri dettagli rilevanti dei valori di numeri reali rappresentati in binario. I seguenti esempi emetterà un vano portaoggetti tipo in virgola mobile e la sua gamma di valori:
#include <stdio.h> #include <float.h> int main() { printf("float 存储最大字节数 : %lu \n", sizeof(float)); printf("float 最小值: %E\n", FLT_MIN ); printf("float 最大值: %E\n", FLT_MAX ); printf("精度值: %d\n", FLT_DIG ); return 0; }
Quando si compila in Linux ed eseguire il programma di cui sopra, esso produrrà i seguenti risultati:
float 存储最大字节数 : 4 float 最小值: 1.175494E-38 float 最大值: 3.402823E+38 精度值: 6
tipo void
tipo specificato il valore vuoto non è disponibile. E 'tipicamente utilizzato nei seguenti tre casi:
序号 | 类型与描述 |
---|---|
1 | 函数返回为空 C 中有各种函数都不返回值,或者您可以说它们返回空。不返回值的函数的返回类型为空。例如void exit (int status); |
2 | 函数参数为空 C 中有各种函数不接受任何参数。不带参数的函数可以接受一个 void。例如int rand(void); |
3 | 指针指向 void 类型为 void * 的指针代表对象的地址,而不是类型。例如,内存分配函数void *malloc( size_t size );返回指向 void 的指针,可以转换为任何数据类型。 |
Ora, se ancora non è possibile comprendere appieno il tipo di vuoto, non preoccupatevi troppo, nelle sezioni successive ci sarà approfondire questi concetti.