歡迎關注個人公衆號「老餘筆記」,也能夠訪問個人我的博客www.yuxiaoshao.cn
有須要的能夠qq交流學習1316677086 或者加入個人羣裏交流:901648700 一塊兒分享資源,交流學習數組
數據類型就是用來聲明不一樣類型的變量或函數的一個普遍的系統。變量的類型決定了變量存儲在內存中佔用的空間。函數
數據類型分爲
基本數據類型/算數類型:數值類型(整數類型,浮點型),字符型char
構造數據類型:數組、結構體、共用體、枚舉
指針類型
void類型(空類型)void學習
咱們經常使用的數字有整數和小數。因此基本數據類型類型又分爲了整數類型即整型(固然這裏的整型不是韓國的整形)和浮點類型即浮點型;指針
注意,各類類型的存儲大小與系統位數有關,但目前通用的以64位系統爲主。code
數據類型 | 佔用大小 |
---|---|
short 短整型 | 2 字節 取值範圍:-32,768 到 32,767 |
int 整型 【經常使用】 | 2或4個字節(通常都佔用2個字節) 取值範圍:-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 |
long 長整型 | 4 字節 取值範圍:-2,147,483,648 到 2,147,483,647 |
其實char也是int類型,在計算機中,字符也是經過對照ACILL表的int數值轉換的。
想知道ACILL表是啥本身百度對象
數據類型 | 佔用大小 |
---|---|
char 字符型【經常使用】 | 1字節 取值範圍:(-128 到 127 或 0 到 255) |
由於-128 到 127 或 0 到 255也在int【-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 】的取值範圍以內,因此在小於127大於-128的範圍裏的時候 int能夠和char類型相互轉換對應的字符blog
數據類型 | 佔用大小 |
---|---|
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 位小數 |
使用sizefof運算符圖片
#include <stdio.h> #include <limits.h> int main() { //表達式 sizeof(type) 獲得對象或類型的存儲字節大小。 printf("int 存儲大小 : %lu \n", sizeof(int)); //%lu 爲 32 位無符號整數 return 0; }
C 語言中若是一個表達式中含有不一樣類型的常量和變量,在計算時,會將它們自動轉換爲同一種類型;內存
int i = 5.5; /*這裏的5.5默認是double類型, 經過C的自動轉換機制,會攝取掉小數部分,只保留整數部分*/
自動轉換規則:
浮點數賦給整型,該浮點數小數被捨去; 例:int a = 1.2; //這裏的.2會被捨去 只會保留整數部分
整數賦給浮點型,數值不變,可是被存儲到相應的浮點型變量中; 例 float b = 5; //這裏的 5 會被轉換成5.0 做爲浮點型存儲在內存裏資源
使用(),在括號裏填寫須要轉換的類型
使用基本數據類型的時候注意,從大範圍強制轉換爲小範圍會存在內存溢出的現象
#include <stdio.h> int main () { float f,x=3.6,y=5.2; int i=4,a,b; a=x+y; b=(int)(x+y);//(x+y)是浮點型 這裏會強制轉換爲int型 f=10/i; printf("a=%d,b=%d,f=%f,x=%f\n",a,b,f,x); return 0 ; }
在C語言裏,是沒有bool類型的,因此 C 語言判斷真假時以 0 爲假,非 0 爲真(通常用1)。
C99 提供了 _Bool 型,因此布爾類型能夠聲明爲 _Bool flag。
_Bool 依然還是整數類型,但與通常整型不一樣的是,_Bool 變量只能賦值爲 0 或 1,非 0 的值都會被存儲爲 1。
C99還提供了一個頭文件 <stdbool.h> 定義了 bool 表明 _Bool,true 表明 1,false 表明 0。
只要導入 stdbool.h ,就能很是方便的操做布爾類型了
#include <stdio.h> //導入 stdbool.h 來使用布爾類型 #include <stdbool.h> //計算n!,n的值在main中定義 int main () { int n = 10; //計算疊乘數 int sum = 1; //用來存放疊乘的結果 bool flag = false; //疊乘標記 int num = n; //循環次數 while( !flag ) { sum = sum * (num--); //當num=1時結束循環 if( num == 1) { flag = true; } } printf ("%d的疊乘值爲 %d \n", n, sum); return 0; }