C語言數據類型
在C語言中,數據類型分為基本類型、構造類型、指針類型和空類型void。其中基本類型又分為數值類型和字符類型;數值類型又分為整型和浮點型。構造類型又分為數組、結構體、共用體和枚舉類型。
對于一些基本類型(int、char)可以用 signed(有符號)、unsigned(無符號)、short、long 修飾。signed 和 unsigned 可以修飾 int 和 char;short 和 long 可以修飾 int 和 double。一般修飾符不算基本類型,不但不同的書有不同的定義。
一、基本類型
一)數值型
1、整型
1)short int
short int 表示一種短整型,可以簡寫為 short,范圍 -32768 到 +32767 ,16 位整數。
2)int
int 表示一種整型,范圍 -32768 到 +32767,16 位整數。
3)unsigned int
unsigned int 表示一種無符號整型,范圍 0 到 32767,16 位整數。
4)unsigned short int
unsigned short int 表示一種無符號短整數,可簡寫為 unsigned short,范圍 0 到 32,767,16 位整數。
5)long int
long int 表示一種長整數,可簡寫為 long,范圍 -2,147,483,648 到 2,147,483,647,32 位整數。
6)unsigned long int
unsigned long int 表示一種無符號長整型,可以簡寫為 unsigned long,0 到 2,147,483,647,32 位整數。
7)long long int
long long int 表示一種長長整型,可以簡寫為 long long,范圍 -9223372036854775808 到 +9223372036854775807,64 位整數。
2、浮點型
1)float
float 表示存儲 32 位浮點值的單精度類型,范圍 -3.4e-38 到 3.4e38,精度 7 位。
2)double
double 表示存儲 64 位浮點值的雙精度類型,范圍 1.7e-308 到 1.7e308,精度約 16 位。
3)long double
long double 表示存儲 128 位浮點值的長雙精度類型,范圍 3.4e-4932 到 1.1e4932,精度約 19 位。
二)字符型(char)
char 用于存儲字符,長度是一個字節8位,分為3種,分別是 char、signed char 和 unsigned char。char 是 signed char 還是 unsigned char,取決于編輯器。
signed char 范圍是 -128 到 127;unsigned char 取值范圍是 0 到 255。
二、構造類型
1、數組
數組是一種組合的數據類型,分一維數組和多維數組,下標從0開始。如定義一個整型一維數組 int a[6]={ 0,1,2,3,4,5},定義一個字符型二維數組 char s[5][5]。
2、結構體(struct)
struct 是指包含多個單一的數據集合,很像數據庫中的記錄,結構中定義的變量很像記錄的字段。定義形式:
struct 標識符
{
成員表
};
3、共用體(union)
union 也是用來描述類型不相同的數據,但與 struct 不同,數據成員存儲時采用覆蓋技術,共享存儲空間,即數據成員在內存中占用同一段存儲單元。定義形式:
union 標識符
{
成員表
};
4、枚舉類型(enum)
enum 用于聲明一組命名的常數,定義形式:
enum 標識符
{
枚舉數據表
};
三、指針類型
指針是指向變量的地址,實質上就是存貯單元的地址。根據所指的變量類型不同,分為整型指針(int *)、浮點型指針(float *)、字符型指針(char *)、結構指針(struct *)和聯合指針(union *)。
四、空類型(void)
void 的字面意思是“空類型”,void * 則為“空類型指針”,void * 可以指向任何類型的數據。它主要有兩方面的用途:一方面是明確表示一個函數不返回任何值;另一方面是定義一個不指向任何地址的指針,需要時再把它指向具體地址。