一、數據類型取值范圍與格式化輸出符號表格
數據類型 | 大小(字節) | 取值范圍 | 格式化輸出符號 |
---|---|---|---|
char | 1 | -128到127<br>或0到255(如果聲明為unsigned char) | %c (字符)<br>%hhu (無符號) |
signed char | 1 | -1.28×102到1.27×102 | %hhd (有符號) |
unsigned char | 1 | 0到2.55×102 | %hhu |
short | 2 | -3.2768×10?到3.2767×10? | %hd |
unsigned short | 2 | 0到6.5535×10? | %hu |
int | 4 | -2.147483648×10?到2.147483647×10? | %d |
unsigned int | 4 | 0到4.294967295×10? | %u |
long | 4或8 | -2.147483648×10?到2.147483647×10?(32位系統)或 -9.223372036854775808×101?到9.223372036854775807×101?(64位系統) | %ld |
unsigned long | 4或8 | 0到4.294967295×10?(32位系統)或 0到1.8446744073709551615×101?(64位系統) | %lu |
long long | 8 | -9.223372036854775808×101?到9.223372036854775807×101? | %lld |
unsigned long long | 8 | 0到1.8446744073709551615×101? | %llu |
float | 4 | 約±3.4×10?3?到±3.4×103? | %f |
double | 8 | 約±1.7×10?3??到±1.7×103?? | %lf |
long double | 10或16 | 約±1.1×10???32到±1.1×10??32 | %Lf |
二、詳細說明
(一)char類型
- 大小
- 為1字節(8位)。
- 取值范圍
- 默認情況下,char是有符號的,取值范圍為 -1.28×102到1.27×102。
- 如果聲明為unsigned char,則取值范圍為0到2.55×102。
- 格式化輸出
- 有符號:%hhd。
- 無符號:%hhu。
- 字符:%c。
(二)short類型
- 大小
- 為2字節(16位)。
- 取值范圍
- 有符號:short,取值范圍為 -3.2768×10?到3.2767×10?。
- 無符號:unsigned short,取值范圍為0到6.5535×10?。
- 格式化輸出
- 有符號:%hd。
- 無符號:%hu。
(三)int類型
- 大小
- 為4字節(32位)。
- 取值范圍
- 有符號:int,取值范圍為 -2.147483648×10?到2.147483647×10?。
- 無符號:unsigned int,取值范圍為0到4.294967295×10?。
- 格式化輸出
- 有符號:%d。
- 無符號:%u。
(四)long類型
- 大小
- 取決于系統(32位系統為4字節,64位系統為8字節)。
- 取值范圍
- 有符號:
- 32位系統:-2.147483648×10?到2.147483647×10?。
- 64位系統:-9.223372036854775808×101?到9.223372036854775807×101?。
- 無符號:
- 32位系統:0到4.294967295×10?。
- 64位系統:0到1.8446744073709551615×101?。
- 有符號:
- 格式化輸出
- 有符號:%ld。
- 無符號:%lu。
(五)long long類型
- 大小
- 為8字節(64位)。
- 取值范圍
- 有符號:long long,取值范圍為 -9.223372036854775808×101?到9.223372036854775807×101?。
- 無符號:unsigned long long,取值范圍為0到1.8446744073709551615×101?。
- 格式化輸出
- 有符號:%lld。
- 無符號:%llu。
(六)浮點類型
- float
- 大小:4字節,單精度浮點數。
- 取值范圍:約±3.4×10?3?到±3.4×103?。
- 格式化輸出:%f。
- double
- 大小:8字節,雙精度浮點數。
- 取值范圍:約±1.7×10?3??到±1.7×103??。
- 格式化輸出:%lf。
- long double
- 大小:10或16字節,擴展精度浮點數。
- 取值范圍:約±1.1×10???32到±1.1×10??32。
- 格式化輸出:%Lf。
三、注意事項
- 格式化輸出符號必須與數據類型匹配,否則會導致未定義行為。
- 不同系統和編譯器可能對某些類型(如long)的大小有不同的實現,需根據實際情況調整。