周遊C語言教程3--基礎數據類型

簡介

數據類型是什麼,數據類型就是世界上的萬物。汽車可以是一種數據類型,電話可以是,電腦可以是,界門綱目科屬種也可以是。能被歸納成一類的就可以看作一種數據類型。

基礎數據類型

基礎數據類型是這個c語言的基礎,就好像這個世界都是由中子和原子構成的一樣,c語言的基礎數據類型也是兩種,整形和浮點型,整型就是整數,浮點型就是小數,本節完。。。。纔怪。

整型

整型就是整數,沒錯,但是我們看上一張知道,c語言裏面是靠比特來存數字的,這裏我們補充一個知識,c語言裏將8個比特看作一個字節。因爲整數是無窮無盡的,我們不可能用無窮多的比特去記錄一個數,所以我們就用多少字節來存一個整數,1個字節8個比特,從0000 0000到1111 1111就是0~255,超過255怎麼辦,我們就再給他多加1個字節,2個字節16個比特,0000 0000 0000 0000 到1111 1111 1111 1111就是0~65535,不夠就再加,使勁加!所以有了下圖

類型 大小 取值
char 1字節 -128~127
signed char 1字節 -128~127
unsigned char 1字節 0~255
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字節 -32768~32767
unsigned short 2字節 0 到 65,535
long 4字節 -2,147,483,648 到 2,147,483,647
unsigned long 4字節 0 到 4,294,967,295

注:這裏的int爲什麼又2或者4字節呢,因爲不同的編譯器給的大小是不同的,vs2013是4個字節,80年代的一款編譯器可能就是2個字節了。

上面這個圖又來個知識點了,signed和unsigned什麼區別呢。看上圖我們可以明顯看到,signed有負數,unsigned沒有負數,這就是他們的區別了。

追本溯源,就是我們把數據類型的第一個比特拿來當符號位了。當我們用signed來修飾這個類型時,它的第一位就被拿來當做符號了,比如第一位是0,那麼這個數就是正數,第一位爲1,那麼這個數就是負數,但是因爲第一位被拿來當做符號了,所以就只有7個比特可以拿來當做大小了,7個1十進制是多少?就是127了。

那爲什麼負數最小是-128呢,因爲0和負數-0如果都表示0的話那就太浪費了,所以我們就把-0拿來表示-128,豈不美哉?

浮點型

類型 大小 取值 精度
float 4字節 1.2E-38 到 3.4E+38 6位小數
double 8字節 2.3E-308 到 1.7E+308 15位小數

這裏做個說明,因爲其實電腦存小數是“亂存”的,所以有個精度的問題。
看下面的代碼

#include <stdio.h>
void main()
{
    float a = 1.23456789123456789;
    double b = 1.23456789123456789;
    printf("a = %.20lf\r\nb = %.20lf\r\n",a,b);

}

這裏我們定義了一個float變量a和double變量b並且讓它等於1.23456781234,然後我們輸出他們小數後20位
在這裏插入圖片描述
可以看到,程序中,float 在小數點6位後開始亂存,double在小數點後15位開始亂存。

因爲浮點型我用的不多,所以這裏就不多做介紹了。

枚舉數據類型

枚舉數據類型就是將所有可能出現的值都列舉出來的一個類型,比如寵物店裏只有英短和美短,那麼我們說的寵物店裏的貓那就是一定指的英短和美短。寵物店裏的貓就是一種枚舉數據類型。

void數據類型

void是空的意思,void數據類型就是沒有數據的意思。現在可能你還不是很容易理解,後面的章節我們將會涉及到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章