跟著做的C++20教程-0009-例項8-整型變數彙總
阿新 • • 發佈:2021-01-26
技術標籤:跟著做的C++20教程c++
目錄
例項概要
- char
- unsigned char
- short
- unsigned short
- int
- unsigned int
- long
- unsigned long
- long long
- unsigned long long
例項程式碼
#include <iostream>
int main(int argc, char** argv)
{
char c = 2;
unsigned char uc = 2u;
signed short s = 2;
unsigned short us = 2u;
signed int i = 2;
unsigned int ui = 2;
long l = 2L;
unsigned long ul = 2uL;
long long ll = 2LL;
unsigned long long ull = 2uLL;
std::cout << "signed char 型變數的位元組數:" << sizeof(c) << std::endl;
std::cout << "unsigned char 型變數的位元組數:" << sizeof(uc) << std::endl;
std::cout << "signed short 型變數的位元組數:" << sizeof(s) << std::endl;
std::cout << "unsigned short 型變數的位元組數:" << sizeof(us) << std::endl;
std::cout << "signed int 型變數的位元組數:" << sizeof(i) << std::endl;
std::cout << "unsigned int 型變數的位元組數:" << sizeof(ui) << std::endl;
std::cout << "signed long 型變數的位元組數:" << sizeof(l) << std::endl;
std::cout << "unsigned long 型變數的位元組數:" << sizeof(ul) << std::endl;
std::cout << "signed long long 型變數的位元組數:" << sizeof(ll) << std::endl;
std::cout << "unsigned long long 型變數的位元組數:" << sizeof(ull) << std::endl;
return 0;
}
執行結果
signed char 型變數的位元組數:1
unsigned char 型變數的位元組數:1
signed short 型變數的位元組數:2
unsigned short 型變數的位元組數:2
signed int 型變數的位元組數:4
unsigned int 型變數的位元組數:4
signed long 型變數的位元組數:4
unsigned long 型變數的位元組數:4
signed long long 型變數的位元組數:8
unsigned long long 型變數的位元組數:8
例項解釋
整型變數
例項中列出了所有C++的整型變數,它們分別是:char
、short
、int
、long
、long long
。以及對應的無符號型別unsigned char
、unsigned short
、unsigned int
、unsigned long
、 unsigned long long
。他們之前的不同是位元組數不同。C++標準並沒有規定這些型別的位元組數量是多少,只規定了他們至少要包含的位元組數量:
型別 | 至少包含的位元組數量 |
---|---|
char | 1 |
short | 2 |
int | 2 |
long | 4 |
long long | 8 |
在我的機器上int
和long
都是4個位元組。
signed
如果型別不使用signed
修飾,預設就是有符號數。
數字字尾
在程式碼中如果直接寫數字預設代表的是signed int
的值。如例項中2
代表的是4個位元組的有符號整型值。如果嚮明確指定數字的型別可以在數字後面加上字尾u
或U
表示無符號數字。如2u
表示4個位元組的無符號整型值。L
代表long
;LL
代表long long
。L
可以用小寫,但是不推薦,因為小寫的l
在某些字型中很容易跟數字1
混淆。