1. 程式人生 > >C語言詳解(1)資料型別

C語言詳解(1)資料型別

資料型別

 關於C語言詳解系列部落格的目錄:https://blog.csdn.net/snake_lp/article/details/78630717點選開啟連結

一,概述

資料型別就是固定記憶體大小空間的別名。簡單的說,資料型別就是建立變數的模板。變數在記憶體空間地址的分配就是根據定義的資料型別的大小進行分配的。如果建立的陣列,各個元素所暫用的空間,就是資料型別的記憶體大小。

需要注意的是,焦炭表示記憶體大小為一個位元組的資料,但是一個位元組的資料不全為字元型別。資料型別也不僅僅體現在記憶體大小中。比如說,都是佔用一個位元組,不同的資料型別,對資料的解析方式就是不同的,顯示給使用者看到的也是不一樣的。就比如說,記憶體中的資料為0100 0001,如果以int型別去解析的話,就是65;如果以char型別去解析的話,就是'A'。

二,資料型別的分類

資料型別可以分成基本資料型別,構造型別,指標型別(派生型別),空型別。其中每個型別下面又有各個小類,就具體的關係見圖1

圖1

三,各種資料型別的介紹

不同的資料型別表示資料的範圍和形式存在差異。比如說整型只能表示整數,浮點型表示的是小數。這裡主要介紹基本資料型別,其他的型別,將使用專題來探討。

3.1整型

         整型分為短整型(短),整型(INT),長整型(長)。同時整型又可以細分為無符號(無符號)和有符號(簽字),預設情況下為有符號的。

3.2浮點型

         浮點型分為單精度型(浮點)和雙精度型(雙)。這兩種型別都是表示有符號的數,並且帶有小數點。單精度和雙精度所佔用的記憶體大小不一樣,也就意味著他們表示的數值範圍不一致,同時他們的精度也是不一致的。在32位系統中浮子型別為4位元組,雙型別為8位元組。

3.3字元型

         字元型別比較特殊,在各種不同的系統中,字元型別都是佔用一個位元組(8位)。用於表示一個字元。但是炭和INT之間存在轉換的,炭可以使用ASCII的INT型別來表示的。

3.4陣列

         陣列是同一類資料型別的集合。

3.5結構體

         結構體是不同資料型別的集合。

3.6共用體(聯合體)

         共用體也是不同資料型別的集合,但是內部成員共用記憶體空間。

3.7列舉型別

         它是用於宣告一組命名的引數,其值為INT型別。

3.8指標型別

         它用於儲存變數地址的型別,即該引數是指向變數的地址,所以為指標。

3.9空型別無效

         簡單的理解,就是沒有型別的型別。

在不同的系統中各個資料型別佔用的記憶體大小空間是存在區別的。但是字元型別不管在什麼系統中都是佔用1個位元組。在不同的作業系統是想要知道各個型別所佔用的位元組大小可以使用關鍵字的的sizeof來查詢。

例如:在32位的開發中 - C ++ 5.11中,執行以下程式碼:

的#include <stdio.h>中

int main(void)

{

         printf(“char size =%d \ n”,sizeof(char));

         printf(“int size =%d \ n”,sizeof(int));

         printf(“short size =%d \ n”,sizeof(short));

         printf(“long size =%d \ n”,sizeof(long));

         printf(“float size =%d \ n”,sizeof(float));

         printf(“double size =%d \ n”,sizeof(double));

}

執行結果就是各個資料型別佔用的位元組數了

字元大小= 1

int size = 4

短尺寸= 2

長尺碼= 4

浮點大小= 4

雙倍大小= 8

附上基本資料型別的暫用位元組數和取值範圍(圖片取至網路)


注意:“[]”代表可以省略。