Table of Contents
一.C語言數據類型分類
C語言的數據類型包括:整型、字符型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。
int : 佔據的內度存大小是2 個byte
short int : 佔據的內度存大小是4 個byte
long int : 佔據的內度存大小是4 個byte
float : 佔據的內度存大小是4 個byte
double : 佔據的內度存大小是8 個byte
char : 佔據的內度存大小是1 個byte
二.C語言整形
C語言的整形,分類兩類,一種是有符號的(正數/負數),一種是無符號的(默認是大於等於零);
1.無符號整形(16位系統)
unsigned int 取值範圍 :0~65535
unsigned short int 取值範圍 :0~65535
unsigned long int 取值範圍 :0~4294967295
無符號整形,默認重0開始,永遠不可能有負數;
2.有符號整形(16位系統)
int 取值範圍 :-32768~+32767
short int 取值範圍 :-32768~+32767
long int 取值範圍 :-2147483648~+2147483647
有符號整形有正負區間(包含大於0和小於0兩個區間),實際上總長度和無符號整形一樣;
3.int 和 long區別
早期的操作系統是16位系統
int用二字節表示,範圍是-32768~32767;
long用4字節表示,範圍是-2147483648~2147483647;
後來發展到32位操作系統
int 用4字節表示,與long相同,範圍是-2147483648~2147483647;
目前的操作系統已發展到64位操作系統,但因程序編譯工藝的不同,兩者表現出不同的差別:
32位編譯系統:int佔四字節,與long相同,範圍是-2147483648~2147483647;
64位編譯系統:int佔四字節,long佔8字節,long數據範圍變爲:-2^63 ~ 2^63-1;
4.超出取值範圍的整形
/************************************************************************/
/*@File Name : helloworld.cpp
/*@Created Date : 2020/4/24 21:17
/*@Author : 猿說編程
/*@blog : www.shuopython.com
/*@Description : C語言入門教程 - 數據類型/變量類型
/************************************************************************/
#include "stdafx.h"
int main()
{
int i=2147483647; //32位操作系統 int 取值範圍 :-2147483648~+2147483647
unsigned long int j=4294967295; //unsigned long int 取值範圍 :0~4294967295
printf("%d %d %u %u\n",i,i+1,j,j+1);
}
輸出結果:
2147483647 -2147483648 4294967295 0
請按任意鍵繼續. . .
由此可見:當int型整數超出自己範圍時,會從它的最小值重新開始!(int 和 long int取值範圍一樣)
三.C語言浮點型float/double
C語言變量類型除了整形之外,還有浮點數類型,例如:3.5,3.1415927685……
浮點數類型也分爲兩類,一種是 float 單精度 ,一種是 double 雙精度,區別就在於 double 的取值範圍不管是小數部分還是整數部分都比 float 更高;
1.float(單精度)
float 整數部分取值範圍:能表達式萬億級別,已經夠大了,實際開發完全夠用;
float 小數部分取值範圍:最多隻能精確到小數點後6位;
2.double(雙精度)
double 整數部分取值範圍:比float更大,腦補就行了….
double 小數部分取值範圍:最多隻能精確到小數點後15位;
舉個例子:
/************************************************************************/
/*@File Name : float_double.cpp
/*@Created Date : 2020/4/25 11:40
/*@Author : 猿說編程
/*@blog : www.shuopython.com
/*@Description : C語言入門教程 - float和double區別
/************************************************************************/
#include "stdafx.h"
int main()
{
float num1 = 3.1415926535;
double num2 = 3.1415926535;
printf("float num1 = %.10f \n",num1);
printf("double num2 = %.10f \n", num2);
}
輸出結果:
float num1 = 3.1415927410
double num2 = 3.1415926535
請按任意鍵繼續. . .
由上面可以看出,float 類型的小數點最多隻能精確到第6位,第7位開始就已經不準確了,而 double 類型可以精確到15位,一般項目中使用 float 類型已經完全足夠了;
猜你喜歡:
2.安裝 Visual Studio 插件 Visual Assist
5.徹底卸載 Visual Studio 2013/2015
轉載請註明:猿說編程 » C語言教程 » C語言數據類型/變量類型
技術交流、商務合作請直接聯繫博主
掃碼或搜索:猿說編程
猿說編程
微信公衆號 掃一掃關注