1. 程式人生 > 其它 >淺談C語言的基本資料型別

淺談C語言的基本資料型別

技術標籤:C語言學習

提示:文章寫完後,目錄可以自動生成,如何生成可參考右邊的幫助文件

文章目錄


前言

學習內容梳理。

C語言中的基本資料型別

1.單位

談基本資料型別之前,首先需要了解一下計算機的儲存單位。
首先,計算機由邏輯電路組成,邏輯電路通常只有兩個狀態,開關的接通與斷開,這兩種狀態正好可以用“1”和“0”表示。因此,計算機內部採用二進位制儲存資訊。一個 二進位制位包含的資訊量稱為位元(Bit)、位元就是組成資訊的最小單位。
接下來由小到大談一談其他的儲存單位。

 1Byte=8Bit  表示範圍 :2^n(n代表位元位數)
,也就是0~255個無符號整數 or -128~127個有符號整數 1KB=1024Byte 1MB=1024KB 1GB=1024MB 1TB=1024GB 1PB=1024TB

用通俗易懂的方式解釋1位元組(Byte)的表示範圍,觀察下方八位二進位制數字(由低位往高位看,1個位元位代表1位2進位制數),上方是00000000,下方是00000001,表示兩種狀態。由於每一位的狀態都只有0或者1,根據排列組合-> 1位二進位制數共有兩種狀態、2位二進位制數有4種狀態、3位共8種狀態、以此類題,8位二進位制數就有2^8種狀態,由於從0開始,那麼其能表示的無符號數就是0~255啦。

00000000
00000001

2.基本資料型別

接下里說說資料型別,C語言中的基本資料型別有以下幾類:

基本資料型別						     大小        表示範圍
char          //字元資料型別     1Byte		 0~2^8-1個無符號數
short         //短整型 			2Byte		 0~2^16-1個無符號數
int           //整形			4Byte		 0~2^32-1個無符號數   	C中整數預設為int型
long          //長整型			4Byte		 0~2^32-1個無符號數	(不同的系統和編譯器的大小可能會是8Byte)
long long     //更長的整形		8Byte		 0~2^64-1個無符號數
float         //單精度浮點型     4Byte		 0~2^32-1個無符號數
double        //雙精度浮點型     8Byte 		 0~2^32-1個無符號數      C中浮點數預設為double型

對於整形變數(預設有符號),可以用unsigned(無符號數),signed(有符號數)來修飾。例如:

 unsigned char a = 128;

我們還可以通過列印sizeof(型別名)來得到資料型別的大小。例如:

#include<stdio.h>

int main()
{
	printf("char的大小是%d個位元組\n", sizeof(char));
	printf("int的大小是%d個位元組\n", sizeof(int));
	printf("long的大小是%d個位元組\n", sizeof(long));
	printf("long long的大小是%d個位元組\n", sizeof(long long));
	printf("float的大小是%d個位元組\n", sizeof(float));
	printf("double的大小是%d個位元組\n", sizeof(double));
	return 0;
}

以上程式碼在32位VS2017中執行結果如圖:
在這裡插入圖片描述

學過其他程式語言的朋友可能會發現,以上資料型別並沒有提到字串型(string),那麼C語言中可以表示字串嗎?答案是可以的, C語言中通過 ->char 字串名[]= "字串內容"來定義一個字串。

3.為什麼出現這麼多的型別?

  1. 因為對於不同的物件,不同的資料型別更具有代表性。
  2. 因為各資料型別的大小和表示範圍不同、給各個型別分到不同的空間,可以達到節約空間的目的。
  3. 便於計算機儲存與處理。

總結

以上就是我關於C語言基本資料型別總結的一些筆記,不足之處、歡迎補充指正!