歡迎關注我的公眾號“老余筆記”,也可以訪問我的個人博客www.yuxiaoshao.cn
有需要的可以qq交流學習1316677086 或者加入我的群里交流:901648700 一起分享資源,交流學習
資料型別
可以加QQ群里一起學習c語言984775301
資料型別就是用來宣告不同型別的變數或函式的一個廣泛的系統,變數的型別決定了變數存盤在記憶體中占用的空間,
資料型別分為
基本資料型別/算數型別:數值型別(整數型別,浮點型),字符型char
構造資料型別:陣列、結構體、共用體、列舉
指標型別
void型別(空型別)void

基本資料型別
我們常用的數字有整數和小數,所以基本資料型別型別又分為了整數型別即整型(當然這里的整型不是韓國的整形)和浮點型別即浮點型;
注意,各種型別的存盤大小與系統位數有關,但目前通用的以64位系統為主,
整型
| 資料型別 | 占用大小 |
|---|---|
| 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型別相互轉換對應的字符
浮點型別
| 資料型別 | 占用大小 |
|---|---|
| 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中的“布爾型別”
在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;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/27312.html
標籤:C
上一篇:共陰數碼管靜態顯示
下一篇:用陣列作為函式引數
