一、整型數據類型 1、整型數據類型名稱及關鍵詞 2、為什麼要定義不同的整型類型? 因為不同的數據類型所占用的記憶體大小是不同的,他們可表示的數據範圍也是不同的。那麼char,short,int,long,long long,分別占用幾個位元組?具體的數值範圍又是多少?C語言並未規定數據類型的大小範圍,具 ...
一、整型數據類型
1、整型數據類型名稱及關鍵詞
2、為什麼要定義不同的整型類型?
因為不同的數據類型所占用的記憶體大小是不同的,他們可表示的數據範圍也是不同的。那麼char,short,int,long,long long,分別占用幾個位元組?具體的數值範圍又是多少?C語言並未規定數據類型的大小範圍,具體實現交由編譯器和平臺來實現。那麼我們怎麼知道Visual studio 2022中各種整型類型能夠表示的範圍呢?我們可以用sizeof測量。
3、如何測量數據類型大小
- sizeof可以測量數據類型
- sizeof可以測量變數
- sizeof可以測量常量
1 //測量整型數據類型占用的位元組 2 #include<stdio.h> 3 int main() 4 { 5 printf("char=%d\n", sizeof(char)); 6 printf("short=%d\n", sizeof(short)); 7 printf("int=%d\n", sizeof(int)); 8 printf("long=%d\n", sizeof(long)); 9 printf("long long=%d\n", sizeof(long long)); 10 return 0; 11 }
運行結果:
4、整型數值範圍結論
5、不想最高位當符號位怎麼做?
二、浮點型數據類型
1、int類型能裝下小數嗎?
1 //錯誤示範 2 #include<stdio.h> 3 int main() 4 { 5 int a=1.345678; 6 int b=0.123456; 7 int c=5.234567; 8 printf("a=%d\n",a); 9 printf("b=%d\n",b); 10 printf("c=%d\n",c); 11 return 0; 12 }
運行結果:
所以整型數據類型是不能表示小數的!
引入新的數據類型:浮點型數據類型
2、單精度浮點類型float
1 #include<stdio.h> 2 int main() 3 { 4 float a=1.345678; 5 float b=0.00001; 6 float c=365.12345; 7 printf("a=%f\n",a); 8 printf("b=%f\n",b); 9 printf("c=%f\n",c); 10 return 0; 11 } 12 //%d占位符用於整型 13 //%f占位符用於浮點型
運行結果:
結果顯示c=365.12344
- 所以浮點型並不能表示無限精確,會有誤差。
- float至少能表示6位有效數字
3、雙精度浮點類型double
1 #include<stdio.h> 2 int main() 3 { 4 double a=1.345678; 5 double b=0.00001; 6 double c=365.12345; 7 printf("a=%f\n",a); 8 printf("b=%f\n",b); 9 printf("c=%f\n",c); 10 return 0; 11 }
運行結果:
4、浮點類型所占位元組
1 //測量浮點型數據類型所占用的位元組 2 #include<stdio.h> 3 int main() 4 { 5 printf("float=%d\n",sizeof(float)); 6 printf("double=%d\n",sizeof(double)); 7 return 0; 8 }
運行結果: