C++的數(shù)據(jù)類(lèi)型你真的了解嗎
前言
C++不像python,創(chuàng)建變量的時(shí)候必須指定類(lèi)型,這樣才能給變量分配一個(gè)合適的內(nèi)存空間。
1 整型
作用:整型變量表示的是整型類(lèi)型的數(shù)據(jù)
整型的數(shù)據(jù)類(lèi)型有4種(最常用的是int),其區(qū)別在于所占內(nèi)存空間不同:

#include<iostream>
using namespace std;
int main()
{
//整型
//1.短整型
short num1 = 32768;
//2.整型
int num2 = 10;
//3.長(zhǎng)整型
long num3 = 10;
//4.長(zhǎng)長(zhǎng)整型
long long num4 = 10;
cout << "num1=" << num1 << endl;
cout << "num2=" << num2 << endl;
cout << "num3=" << num3 << endl;
cout << "num4=" << num4 << endl;
system("pause");
return 0;
}
因?yàn)槎陶腿≈捣秶鸀?32768-32767,所以注意數(shù)值溢出,當(dāng)數(shù)值溢出時(shí),取補(bǔ)碼。
當(dāng)如下定義時(shí):
short num1 = 32768
輸出為
num1=-32768
2 sizeof關(guān)鍵字
作用:利用siezeof關(guān)鍵字可以統(tǒng)計(jì)數(shù)據(jù)類(lèi)型所占內(nèi)存大小語(yǔ)法:
sizeof{數(shù)據(jù)類(lèi)型/變量}
#include<iostream>
using namespace std;
int main()
{
//利用sizeof求出數(shù)據(jù)類(lèi)型占用大小
short num1 = 10;
int num2 = 10;
long num3 = 10;
long long num4 = 10;
cout << "short占用內(nèi)存空間為:" << sizeof(short) << endl;
cout << "num1占用內(nèi)存空間為:" << sizeof(num1) << endl;
cout << "int占用內(nèi)存空間為:" << sizeof(int) << endl;
cout << "num2占用內(nèi)存空間為:" << sizeof(num2) << endl;
cout << "long占用內(nèi)存空間為:" << sizeof(long) << endl;
cout << "num3占用內(nèi)存空間為:" << sizeof(num3) << endl;
cout << "long long占用內(nèi)存空間為:" << sizeof(long long) << endl;
cout << "num4占用內(nèi)存空間為:" << sizeof(num4) << endl;
system("pause");
return 0;
}
3 實(shí)型(浮點(diǎn)型)
作用:用于表示小數(shù)
浮點(diǎn)型變量分為兩種:
- 單精度f(wàn)loat, 雙精度double
- 區(qū)別在于表示的有效數(shù)字范圍不同。

在使用時(shí),使用方法通常為
float f1 = 3.14f
如果不加f,默認(rèn)是double型變量:


#include<iostream>
using namespace std;
int main()
{ //默認(rèn)情況下,輸出一個(gè)小數(shù),會(huì)顯示最多6位有效數(shù)字
//1.單精度
float f1 = 3.1415926f;
cout << "f1=" << f1 << endl;
//2.雙精度
double d1 = 3.1415926;
cout << "d1=" << d1 << endl;
//占用內(nèi)存查看
cout << "float占用內(nèi)存空間為:" << sizeof(float) << endl;
cout << "double占用內(nèi)存空間為:" << sizeof(double) << endl;
//科學(xué)計(jì)數(shù)法
float f2 = 3e2f;
cout << "f2=" << f2 << endl;
float f3 = 3e-2f;
cout << "f3=" << f3 << endl;
system("pause");
return 0;
}
4 字符型
作用:字符變量用于顯示單個(gè)字符
語(yǔ)法:char ch=‘a’;
1.C和C++中字符型變量只占用1個(gè)字節(jié)。
2.字符型變量并不是把字符本身放到內(nèi)存中存儲(chǔ),而是將對(duì)應(yīng)的ASCII編碼放入到存儲(chǔ)單元。
注:用單引號(hào)不要用雙引號(hào);單引號(hào)內(nèi)只能有一個(gè)字符,不可以是字符串。
#include<iostream>
using namespace std;
int main()
{
//字符型變量創(chuàng)建方式
char ch = 'a';
cout << ch << endl;
//字符型變量所占內(nèi)存大小
cout << "char字符型變量所占內(nèi)存:" << sizeof(char) << endl;
//字符型變量常見(jiàn)錯(cuò)誤
// char ch2="b";
// char ch2='abc';
//字符型變量對(duì)應(yīng)ASCII編碼
cout <<"字符A的ASCII碼值為:"<<(int)'A' << endl;
cout << "變量ch的ASCII碼值為:" << (int)ch << endl;
system("pause");
return 0;
}
5 轉(zhuǎn)義字符
作用:用于表示一些不能顯示出來(lái)的ASCII字符
常用的就下面這些,其余可自行百度
語(yǔ)法:使用cout時(shí)直接加在字符串中。

#include<iostream>
using namespace std;
int main()
{ //換行符 \n
cout << "hello world\n"<<endl;
//反斜杠 \
cout << "\\" << endl;
/*水平制表符 \t
使用空格補(bǔ)齊位置,使得所占位置為8的倍數(shù)
輸入正好為8個(gè)時(shí),輸出會(huì)多8個(gè)空格 */
cout << "aaaa\ttheworld" << endl;
cout << "aaa\ttheworld" << endl;
cout << "aaaaaaaa\ttheworld" << endl;
cout << "aaaaaaaaa\ttheworld" << endl;
cout << "aaaaaaaaaaa\ttheworld" << endl;
system("pause");
return 0;
}
6 字符串型
作用:用于表示一串字符。
兩種風(fēng)格
1.C風(fēng)格的字符串:char 變量名[ ] = “字符串值”; ——注意加[ ],不加[ ]的時(shí)候默認(rèn)的是字符。
2.C++風(fēng)格字符串:string 變量名 = “字符串值”;——注意加頭文件#include
#include<iostream>#include<string>using namespace std;int main(){//1.C風(fēng)格字符串,注意加中括號(hào)[]char str[] = "hello world";cout << str << endl;//2.C++風(fēng)格字符串,注意加頭文件#include<string>string str2 = "hello world";cout << str2 << endl;system("pause");return 0;}#include<iostream>
#include<string>
using namespace std;
int main()
{
//1.C風(fēng)格字符串,注意加中括號(hào)[]
char str[] = "hello world";
cout << str << endl;
//2.C++風(fēng)格字符串,注意加頭文件#include<string>
string str2 = "hello world";
cout << str2 << endl;
system("pause");
return 0;
}
7 布爾類(lèi)型 bool
作用:布爾數(shù)據(jù)類(lèi)型代表真或假的值
bool類(lèi)型只有兩個(gè)值:
1.true 真
2.false 假
bool類(lèi)型占一個(gè)字節(jié)
#include<iostream>#include<string>using namespace std;int main(){//1.創(chuàng)建bool數(shù)據(jù)類(lèi)型bool flag = true;cout << flag << endl;flag = false;cout << flag << endl;//本質(zhì)是1就是真,0就是假。//2.查看bool類(lèi)型所占內(nèi)存空間cout <<"bool類(lèi)型所占內(nèi)存空間為:" << sizeof(bool) << endl;system("pause");return 0;}#include<iostream>
#include<string>
using namespace std;
int main()
{
//1.創(chuàng)建bool數(shù)據(jù)類(lèi)型
bool flag = true;
cout << flag << endl;
flag = false;
cout << flag << endl;
//本質(zhì)是1就是真,0就是假。
//2.查看bool類(lèi)型所占內(nèi)存空間
cout <<"bool類(lèi)型所占內(nèi)存空間為:" << sizeof(bool) << endl;
system("pause");
return 0;
}
8 數(shù)據(jù)的輸入
作用:從鍵盤(pán)獲取數(shù)據(jù)
關(guān)鍵字:cin
語(yǔ)法:
cin >> 變量
#include<iostream>
#include<string>
using namespace std;
int main()
{
//1.整型
int a = 0; //盡量初始化,如果不初始化在使用或者打印它時(shí)都會(huì)報(bào)錯(cuò)。
cout << "請(qǐng)給整型變量a賦值:" << endl;
cin >> a;
cout << "整型變量a=" << a << endl;
//2.浮點(diǎn)型
float f = 0.f;
cout << "請(qǐng)給浮點(diǎn)型變量f賦值:" << endl;
cin >> f;
cout << "浮點(diǎn)型變量f=" << f << endl;
//3.字符型
char ch = ' ';
cout << "請(qǐng)給字符型變量ch賦值:" << endl;
cin >> ch;
cout << "字符型變量f=" << ch << endl;
//4.字符串型
string str = "abc";
cout << "請(qǐng)給字符串型變量str賦值:" << endl;
cin >> str;
cout << "字符串型變量str=" << str << endl;
//5.布爾型,用數(shù)字表示真假,只要輸入不是0,那么就是1
bool flag = false;
cout << "請(qǐng)給布爾型變量flag賦值:" << endl;
cin >> flag;
cout << "布爾型變量flag=" << flag << endl;
system("pause");
return 0;
}
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C++實(shí)現(xiàn)LeetCode165.版本比較)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode165.版本比較),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
C語(yǔ)言實(shí)現(xiàn)洗牌與發(fā)牌游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言洗牌與發(fā)牌游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
C++?棧和隊(duì)列的實(shí)現(xiàn)超詳細(xì)解析
棧和隊(duì)列,嚴(yán)格意義上來(lái)說(shuō),也屬于線(xiàn)性表,因?yàn)樗鼈円捕加糜诖鎯?chǔ)邏輯關(guān)系為?"一對(duì)一"?的數(shù)據(jù),但由于它們比較特殊,因此將其單獨(dú)作為一章,做重點(diǎn)講解2022-03-03
C語(yǔ)言中scanf函數(shù)的原樣輸入的坑及解決
這篇文章主要介紹了C語(yǔ)言中scanf函數(shù)的原樣輸入的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
C語(yǔ)言 OpenCV實(shí)現(xiàn)柱面投影
在做全景拼接的時(shí)候,為了保持圖片中的空間約束與視覺(jué)的一致性,需要進(jìn)行柱面投影,否則離中心圖像距離越遠(yuǎn)的圖像拼接后變形越大。本文將具體介紹一下這如何實(shí)現(xiàn),需要的可以參考一下2021-12-12
C語(yǔ)言putenv()函數(shù)和getenv()函數(shù)的使用詳解
這篇文章主要介紹了C語(yǔ)言putenv()函數(shù)和getenv()函數(shù)的使用詳解,用來(lái)進(jìn)行環(huán)境變量的相關(guān)操作,需要的朋友可以參考下2015-09-09
淺談Qt信號(hào)槽與事件循環(huán)的關(guān)系
本文主要介紹了Qt信號(hào)槽與事件循環(huán)的關(guān)系,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
C++高并發(fā)內(nèi)存池的實(shí)現(xiàn)
本文主要介紹了C++高并發(fā)內(nèi)存池的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Qt?Creator配置opencv環(huán)境的全過(guò)程記錄
最近在PC端QT下配置opencv,想著以后應(yīng)該會(huì)用到,索性記錄下,這篇文章主要給大家介紹了關(guān)于Qt?Creator配置opencv環(huán)境的相關(guān)資料,需要的朋友可以參考下2022-05-05

