認(rèn)識(shí)C++的變量與整型

面向?qū)ο缶幊蹋∣OP)的本質(zhì)就是設(shè)計(jì)并拓展數(shù)據(jù)類型的過程按咒。設(shè)計(jì)自己的數(shù)據(jù)類型目的是為了讓數(shù)據(jù)得到匹配紊选,如果開發(fā)者可以順利做到這一點(diǎn)亥宿,就不難發(fā)現(xiàn)以后使用數(shù)據(jù)就會(huì)容易得多利凑。然而浆劲,在創(chuàng)建自己數(shù)據(jù)類型的前提是必須了解并掌握C++中內(nèi)置的數(shù)據(jù)類型,它們是創(chuàng)建自己數(shù)據(jù)類型的基礎(chǔ)條件哀澈。

內(nèi)置的數(shù)據(jù)類型分兩組:基本類型和復(fù)合類型牌借。本章知識(shí)點(diǎn)主要介紹基本數(shù)據(jù)類型,即整數(shù)和浮點(diǎn)數(shù)割按。似乎只有兩種數(shù)據(jù)類型膨报,但C++知道,沒有任何一種整型或浮點(diǎn)型可以滿足所有的編程需求适荣,因此它對這兩種數(shù)據(jù)類型作了升級(jí)變形现柠,后面會(huì)向大家介紹數(shù)組、字符串弛矛、指針和結(jié)構(gòu)够吩。

簡單的變量

程序在運(yùn)行的過程中往往都要存儲(chǔ)數(shù)據(jù),譬如王者榮耀需要存儲(chǔ)英雄的戰(zhàn)績丈氓、傷害值等周循。為了將數(shù)據(jù)存儲(chǔ)在計(jì)算機(jī)中,程序必須記錄三個(gè)基本屬性:

  • 信息存儲(chǔ)在哪里
  • 需要存儲(chǔ)什么值
  • 存儲(chǔ)什么類型的信息
int harm;
harm = 900

例如上面的語句是在告訴程序万俗,它正在存儲(chǔ)一個(gè)整數(shù)鱼鼓,并使用名稱harm來表示該整數(shù)的值。計(jì)算機(jī)內(nèi)部實(shí)際上是找到一塊能夠存儲(chǔ)整數(shù)的內(nèi)存该编,將該內(nèi)存單元標(biāo)記為harm迄本,并將900復(fù)制到該內(nèi)存單元中;然后在使用程序時(shí)便可以使用harm來訪問這個(gè)內(nèi)存單元课竣。

不過程序是不會(huì)告訴用戶嘉赎,它具體存在哪個(gè)單元中,實(shí)際上可以使用&運(yùn)算符來檢索(查找)harm的內(nèi)存地址于樟,在后面會(huì)向大家介紹指針知識(shí)時(shí)會(huì)講到公条。

變量名

在定義變量名時(shí)建議大家使用有一定含義的變量名。例如迂曲,你要定義一件商品的價(jià)格可以使用變量名price靶橱,而不是用x或者ab等。

下面來說一下起變量名時(shí)需要注意的事項(xiàng):

  • 只能使用數(shù)字关霸、字母和下劃線
  • 變量中第一個(gè)字符不能是數(shù)字
  • 變量名區(qū)分大小寫
  • 不能將C++中的關(guān)鍵字用作名稱传黄,如coutcin
  • 以兩個(gè)下劃線或者下劃線和大寫字母打頭的名稱被保留給編譯器和其要使用的資源使用队寇。這句話可能有點(diǎn)繞膘掰,意思是這樣命名也沒有錯(cuò),但是會(huì)導(dǎo)致編譯器的行為具有不確定性佳遣,一般也不允許用戶這樣命名识埋。
  • C++一般對變量名的長度沒有限制,只是有些平臺(tái)會(huì)對此限制零渐。

另外窒舟,如果你想要表達(dá)的變量需要由幾個(gè)單詞組合而成,那么建議使用下劃線進(jìn)行拼接诵盼。例如辜纲,我現(xiàn)在要表達(dá)蘋果價(jià)格,我會(huì)這樣命名:apple_price

整型

整型其實(shí)非常好理解拦耐,它代表的是沒有小數(shù)部分的數(shù)字耕腾,如0,-5杀糯,98扫俺,1000,-2025等」毯玻現(xiàn)在思考一個(gè)問題狼纬,計(jì)算機(jī)能夠存儲(chǔ)所有的整數(shù)嗎?

答案是顯而易見的骂际,當(dāng)然是不能疗琉!

往往來說為了存儲(chǔ)較大的數(shù)字,那么計(jì)算機(jī)中就得用較大的內(nèi)存來存儲(chǔ)歉铝。C++提供了好幾種整型的類型盈简,為的就是不要浪費(fèi)過多的內(nèi)存。

C++中提供了char太示、short柠贤、int、long和C++11中新增了long long类缤,每個(gè)版本都提供了有符號(hào)和無符號(hào)的版本臼勉。所謂有無符號(hào)的意思是,有符號(hào)的類型則可以表示正負(fù)數(shù)餐弱;而無符號(hào)則表示不能存儲(chǔ)負(fù)數(shù)宴霸。

整型short囱晴、int、long和long long

計(jì)算機(jī)內(nèi)存由位(bit)的單元組成瓢谢,不同長度的整型也會(huì)由不同數(shù)目的位來存儲(chǔ)值畸写,最多能表示4種不同的整數(shù)寬度。例如

  • short至少16位
  • int至少和short一樣長
  • long至少32位恩闻,且至少和int一樣長
  • long long至少64位,且至少與long一樣長

計(jì)算機(jī)內(nèi)存的基本單位是位(bit)剧董〈鄙校可以將位看作是電子開關(guān),0代表關(guān)翅楼,1代表開尉剩。8位的內(nèi)存可以設(shè)置出256種不同的組合,每一位都有兩種設(shè)置毅臊。所以8位的總組合數(shù)為2×2×2×2×2×2×2×2=256理茎。因此8個(gè)單元可以表示0-255或者是-128到127。每多一位那么組合數(shù)則會(huì)加倍管嬉。

字節(jié)(byte)通常指的是8位的內(nèi)存單元皂林,從這個(gè)意義上說,字節(jié)是計(jì)算機(jī)內(nèi)存的度量單位蚯撩。1KB=1024字節(jié)础倍、1MB=1024KB

如果想要知道你的系統(tǒng)中的整數(shù)最大可以支持的長度,可以使用c++中的工具sizeof實(shí)現(xiàn)胎挎,以int類型為例沟启,在不同的系統(tǒng)中它所表示的位數(shù)可能不同,可能是16位也可能是32位犹菇。

另外德迹,除了iostream這個(gè)頭文件外,還需要添加一個(gè)新的頭文件climits揭芍,這個(gè)頭文件中包含了整型限制的信息胳搞。具體來說,是它定義了表示各種限制的符號(hào)名稱称杨。例如:INT_MAXint最大值流酬,CHAR_BIT為字節(jié)位數(shù)。

limit.cpp

#include <iostream>
#include <climits>


int main()
{
    using namespace std;
    int n_int = INT_MAX;
    short n_short = SHRT_MAX;
    long n_long = LONG_MAX;
    long long n_llong = LLONG_MAX;
    cout << "int is " << sizeof(int) << " bytes" << endl;
    cout << "short is " << sizeof n_short << " bytes" << endl;
    cout << "long is " << sizeof n_long << " bytes" << endl;
    cout << "long long is " << sizeof n_llong << " bytes" << endl;
    
    cout << "maximum values: " << endl;
    cout << "int: " << n_int << endl;
    cout << "short: " << n_short << endl;
    cout << "long: " << n_long << endl;
    cout << "long: " << n_llong << endl;

    cout << "minimum int value = " << INT_MIN << endl;
    cout << "Bits per byte = " << CHAR_BIT << endl;
    return 0;
}

輸出結(jié)果如下:

int is 4 bytes
short is 2 bytes
long is 4 bytes
long long is 8 bytes
maximum values:
int: 2147483647
short: 32767
long: 2147483647
long: 9223372036854775807
minimum int value = -2147483648
Bits per byte = 8

下面對程序做簡單的解釋說明:

1列另、運(yùn)算符sizeof和頭文件 limits

sizeof運(yùn)算符指出芽腾,在使用8位字節(jié)的系統(tǒng)中,int的長度位4個(gè)字節(jié)页衙√希可以對變量名或類型名使用sizeof運(yùn)算符阴绢,不過呢使用類型名的時(shí)候需要將它放在括號(hào)內(nèi),變量名則可以不需要艰躺。

最后呻袭,大家可以嘗試去寫寫下面的代碼,看看它的執(zhí)行結(jié)果會(huì)是什么腺兴?

#include <iostream>
using namespace std;

int main() {
    int intVar;
    double doubleVar;
    char charVar;
    bool boolVar;
    
    // 使用 sizeof 操作符獲取不同數(shù)據(jù)類型的字節(jié)大小
    cout << "Size of int: " << sizeof(intVar) << " bytes" << endl;
    cout << "Size of double: " << sizeof(doubleVar) << " bytes" << endl;
    cout << "Size of char: " << sizeof(charVar) << " bytes" << endl;
    cout << "Size of bool: " << sizeof(boolVar) << " bytes" << endl;

    // 也可以直接對類型使用 sizeof
    cout << "Size of float: " << sizeof(float) << " bytes" << endl;

    return 0;
}

總結(jié)

本次文章的主要帶著大家學(xué)習(xí)變量名的起名方式左电,以及所有整型類型的認(rèn)識(shí)以及它們所包含的長度和字節(jié)數(shù),希望大家能夠通過這篇文章學(xué)習(xí)并掌握變量與整型相關(guān)的知識(shí)页响。

帶你開始學(xué)習(xí)C++的知識(shí)篓足。

路漫漫其修遠(yuǎn)兮,吾將上下而求索闰蚕。

與君共勉之栈拖!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市没陡,隨后出現(xiàn)的幾起案子涩哟,更是在濱河造成了極大的恐慌,老刑警劉巖盼玄,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贴彼,死亡現(xiàn)場離奇詭異,居然都是意外死亡埃儿,警方通過查閱死者的電腦和手機(jī)锻弓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蝌箍,“玉大人青灼,你說我怎么就攤上這事〖嗣ぃ” “怎么了杂拨?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長悯衬。 經(jīng)常有香客問我弹沽,道長,這世上最難降的妖魔是什么筋粗? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任策橘,我火速辦了婚禮,結(jié)果婚禮上娜亿,老公的妹妹穿的比我還像新娘丽已。我一直安慰自己,他們只是感情好买决,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布沛婴。 她就那樣靜靜地躺著吼畏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嘁灯。 梳的紋絲不亂的頭發(fā)上泻蚊,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機(jī)與錄音丑婿,去河邊找鬼性雄。 笑死,一個(gè)胖子當(dāng)著我的面吹牛羹奉,可吹牛的內(nèi)容都是我干的秒旋。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼尘奏,長吁一口氣:“原來是場噩夢啊……” “哼滩褥!你這毒婦竟也來了病蛉?” 一聲冷哼從身側(cè)響起炫加,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铺然,沒想到半個(gè)月后俗孝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡魄健,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年赋铝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沽瘦。...
    茶點(diǎn)故事閱讀 39,711評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡革骨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出析恋,到底是詐尸還是另有隱情良哲,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布助隧,位于F島的核電站筑凫,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏并村。R本人自食惡果不足惜巍实,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望哩牍。 院中可真熱鬧棚潦,春花似錦、人聲如沸膝昆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至原环,卻和暖如春挠唆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嘱吗。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工玄组, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人谒麦。 一個(gè)月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓俄讹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绕德。 傳聞我的和親對象是個(gè)殘疾皇子患膛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容