C語言之基本數據類型
2019-11-14 09:11:14
供稿:網友
C語言數據類型之基本類型C語言編程其中一個比較重要的地方是對數據的組織。我們通常會看到各種結構體類型的數據,就是對數據的一種組織方式。這樣將數據組織起來,有利于我們對數據的操作和管理。合理的數據結構,可以使我們的程序算法簡潔、有條理。今天,不講數據結構,而是講一下組成這些結構體的基本數據。C語言中涉及到的基本數據類型并不多,共有以下幾種:char(字符型)、short(短整型)、int(整型)、long(長整型)float(單精度浮點型)、double(雙精度浮點型)。可以將這6種基本類型做一下歸類:字符值:char。用于表示字符,如'a','b','c','1','2','3'等等。整值:short、int、long。用于表示一個整數,如0,1,3,5,56,582等等。浮點值:float、double。用于表示一個小數,如1.2,1.32,4.563等等。也就說,在你的程序中,如有想用一個變量來表示字符的,那么就用char來進行聲明和定義,如果想用來表示整數的,就用short、int或者long來進行聲明和定義,如果想表示一個小數,那么就使用float或者double來進行聲明和定義。如下:char c = 'a';int i = 54;float f = 3.3;PS:以上為了便于理解,對這些變量進行了初始化。OK,上面只是對這些基本類型數據的一些簡單說明,下面再深入一下。對于整值來說,可以用short聲明,也可以用int聲明,也可以用long聲明,那么這三者有什么區別呢?對于浮點值來說,可以用float聲明,也可以用double聲明,這兩者又有什么區別呢?這就涉及到一個叫字節的東西。大家知道,計算機能夠識別的數據是二進制數據,即只認識0或1,那么當我們定義并初始化一個整值變量時,計算機是怎么去進行識別的呢?前人總是很機智的,他們提出了一個叫進制轉換的概念,即可以將十進制(八進制等)數轉換為二進制(反之亦然)。那么當我們定義并且初始化一個變量時,該變量存儲到內存中時,就會自動按照二進制的方式去存儲了。那在內存中,一個0或者1稱為一個位,那么8個位就為一個字節,這樣的話,一個字節(不考慮符號問題)最大可以表示255(2^8-1),最小可以表示0(具體可以看看二進制和十進制的轉換方法)。那么到這里,大家肯定疑問,一個字節最大才能表示255,那我的變量數值大于255怎么辦?那就再多加一個字節唄,這樣兩個自己最大就能表示65535(2^16-1)。如果還不夠,那么我就再加一個字節,三個字節最大能表示2^24-1,以此類推。。。那么short、int、long的區別是什么呢?short類型的變量為兩個字節,int類型的變量為4個字節,long類型的變量為8個字節(皆針對32位系統)。那到這里,就很明了了,這三者的區別就是能表示的數的最大值不一樣,如short最大只能表示65535,而int最大只能表示2^32-1,long最大只能表示2^64-1。這樣就看你的程序需求,根據變量的值范圍進行變量聲明。不過在變量值不大于4個字節的基礎上,一般都是用int進行聲明了。那float和double又有什么區別呢?double的精度比float高,double的有效位達到15位(有些系統是16位),比如可以表示3.12345678912345這么大精度的數值,而float的精度就只有6位(有些系統是7位),只能表示3.12345這么大精度的數值。類型 有效位 字節數****************************************float 6 – 7 4****************************************double 15 – 16 8****************************************類型 指數長度 尾數長度****************************************float 8 位 23 位****************************************double 11 位 52 位****************************************float和double在現有項目中用得比較少,暫時只做這些總結,后續若項目中有用到,再進行總結。關于浮點值和二進制的轉換規則還有點迷糊。