數(shù)據(jù)類型
C++規(guī)定在創(chuàng)建一個變量或者常量時,必須要指定出相應(yīng)的數(shù)據(jù)類型,否則無法給變量分配內(nèi)存
1、整型
作用:整型變量 表示的是 整數(shù)類型 的數(shù)據(jù)
C++ 中能夠表示整型的類型由一下幾種方式,區(qū)別在于所占內(nèi)存空間不同:
數(shù)據(jù)類型
占用空間
取值范圍
short(短整型)
2字節(jié)
-2^15 -- 2^15 - 1
int(整型)
4字節(jié)
-2^31 -- 2^31-1
long(長整型)
Windows為4字節(jié),Linux為4字節(jié)(32位),8字節(jié)(64位)
long long(更長的整型)
8字節(jié)
取值范圍的計算:1字節(jié) = 8個bit位,即0000 0000,則有2的8次方的變化,由此可以推算出取值范圍
1.2 sizeof 關(guān)鍵字
作用:利用sizeof關(guān)鍵字可以統(tǒng)計 數(shù)據(jù)類型所占內(nèi)存大小
語法: sizeof(數(shù)據(jù)類型 / 變量)
#include <iostream> using namespace std; /* ? ?sizeof 的用法: sizeof(數(shù)據(jù)類型 / 變量 / 常量) */ int main() { ? ?short num1 = 10; ? ?int num2 = 10; ? ?long num3 = 10; ? ?long long num4 = 10; ? ?const int num5 = 11; ? ?cout << "num1 所占內(nèi)存空間為:" << sizeof(num1) << endl; ?// 2 ? ?cout << "num2 所占內(nèi)存空間為:" << sizeof(num2) << endl; ?// 4 ? ?cout << "num3 所占內(nèi)存空間為:" << sizeof(num3) << endl; ?// 4 ? ?cout << "num4 所占內(nèi)存空間為: " << sizeof(num4) << endl; ?// 8 ? ?cout << "num5 所占內(nèi)存空間為: " << sizeof(num5) << endl; ?// 4 ? ?cout << "short 類型所占內(nèi)存空間為: " << sizeof(short) << endl; // 2 ? ?cout << "int 類型所占內(nèi)存空間為: " << sizeof(int) << endl; ?// 4 ? ?cout << "long 類型所占內(nèi)存空間為:" << sizeof(long) << endl; ?// 4 ? ?cout << "long long 類型所占內(nèi)存空間為: " << sizeof(long long) << endl; // 8 }
1.3 實型
作用:用于表示小數(shù)
浮點型變量分為兩種:
1、單精度float
2、雙精度double
兩者的區(qū)別在于表示的有效數(shù)字范圍不同。
數(shù)據(jù)類型
占用空間
有效數(shù)字范圍
float
4字節(jié)
7位有效數(shù)字
double
8字節(jié)
15 - 16 位 有效數(shù)字
默認(rèn)情況下 輸出一個小鼠,會顯示出6位 有效數(shù)字,可以通過配置改變有效數(shù)字長度;
1.4 字符型
作用:字符型變量用于顯示單個字符
語法: char ch = 'a';
|注意1:在顯示字符型變量時,用單引號將字符括起來,不要用雙引號;
|注意2: 單引號內(nèi)只能有一個字符,不可以是字符串;
C和C++中字符型變量只占用 1 個字節(jié);
字符型變量并不是把字符本身放到內(nèi)存中存儲,而是將對應(yīng)的 ASCII 編碼 放入到存儲單元。
#define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; int main() { ? ?char ch = 'a'; ? ?char ch1 = 'zzac'; ? ?//char ch2 = "c"; ? 字符變量不能用雙引號 ? ?cout << ch << endl; ? // 輸出 a ? ?cout << ch1 << endl; ?// 輸出 c, 但是當(dāng) 單引號中的字符超過 4個 時,編譯就會報錯 ? ?cout << (int)ch << endl; //查看字符對應(yīng)的ASCII碼 ? ?cout << (int)ch1 << endl; //查看字符對應(yīng)的ASCII碼 ? ?return 0; }
1.5 轉(zhuǎn)義字符
作用:用于表示一些不能顯示出來的ASCII字符
現(xiàn)階段我們常用的轉(zhuǎn)義字符有: \n ? \\ ? \t
轉(zhuǎn)義字符
意義
ASCLL碼值(十進(jìn)制)
\a
響鈴(BEL)
007
\b
退格(BS) ,將當(dāng)前位置移到前一列
008
\f
換頁(FF),將當(dāng)前位置移到下頁開頭
012
\n
換行(LF) ,將當(dāng)前位置移到下一行開頭
010
\r
回車(CR) ,將當(dāng)前位置移到本行開頭
013
\t
水平制表(HT) (跳到下一個TAB位置)
009
\v
垂直制表(VT)
011
\'
代表一個單引號
039
\"
代表一個雙引號字符
034
\
代表一個反斜線字符'''
092
?
代表一個問號
063
\0
空字符(NUL)
000
\ddd
1到3位八進(jìn)制數(shù)所代表的任意字符
三位八進(jìn)制
\xhh
十六進(jìn)制所代表的任意字符
十六進(jìn)制
1.6 字符串類型
作用:用于表示一串字符
兩種風(fēng)格
1、C風(fēng)格字符串:char 變量名[] = "字符串"
示例: char str1[] = "Hello C++";
注意:C風(fēng)格的字符串要用雙引號括起來
2、C++風(fēng)格字符串:string 變量名 = “字符串”
示例:string str2 = "Hello C++";
注意:使用string需要包含頭文件,vs2022中不使用也可以
1.7 布爾類型 bool
作用:布爾數(shù)據(jù)類型代表真或假的值
bool類型只有兩個值:
true -- 真(本質(zhì)是1)
false -- 假 (本質(zhì)是0)
bool類型占1個字節(jié)大小
#define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; int main() { ? ?bool flag = true; ? ?cout << flag << endl; ? // 輸出 1 ? ?flag = false; ? ?cout << flag << endl; ? //輸出 0 ? ?cout << "bool 類型所占的內(nèi)存大小為:" << sizeof(bool) << endl; ? //1 ? ?return 0; }
1.8 數(shù)據(jù)的輸入
作用:用于從鍵盤獲取數(shù)據(jù)
關(guān)鍵字:cin
語法:cin >> 變量
#define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; int main() { ? ?//整型輸入 ? ?int a = 0; ? ?cout << "請輸入整型變量:" << endl; ? ?cin >> a; ? ?cout << "整型a = " << a << endl; ? ?//浮點型輸入 ? ?float f; ? ?cout << "請輸入單精度浮點型數(shù)字:" << endl; ? ?cin >> f; ? ?cout << "單精度浮點型f = " << f << endl; ? ?//字符輸入 ? ?char ch; ? ?cout << "請輸入字符類型ch:" << endl; ? ?cin >> ch; ? ?cout << "字符ch = " << ch << endl; ? ?//bool類型,對于布爾類型,非 0 的數(shù)值都代表為真,即輸出為1,輸入字符串輸出為0,例如:asdfasd ? ?bool b; ? ?cout << "請輸入布爾類型b:" << endl; ? ?cin >> b; ? ?cout << "布爾類型 b = " << b << endl; ? ?//字符串類型 ? ?string str; ? ?cout << "請輸入字符串類型str:" << endl; ? ?cin >> str; ? ?cout << "字符串類型 str =" << str << endl; ? ?return 0; }