大話C語言變量和數(shù)據(jù)類型

計(jì)算機(jī)要處理的數(shù)據(jù)(諸如數(shù)字咖祭、文字么翰、符號(hào)浩嫌、圖形码耐、音頻骚腥、視頻等)是以二進(jìn)制的形式存放在內(nèi)存中的瓶逃;

我們將8個(gè)比特(Bit)稱為一個(gè)字節(jié)(Byte)厢绝,并將字節(jié)作為最小的可操作單元昔汉。

我們不妨先從最簡(jiǎn)單的整數(shù)說起,看看它是如何放到內(nèi)存中去的贷掖。

變量(Variable)

現(xiàn)實(shí)生活中我們會(huì)找一個(gè)小箱子來存放物品渴语,一來顯得不那么凌亂驾凶,二來方便以后找到调违。計(jì)算機(jī)也是這個(gè)道理技肩,我們需要先在內(nèi)存中找一塊區(qū)域虚婿,規(guī)定用它來存放整數(shù)然痊,并起一個(gè)好記的名字,方便以后查找剧浸。這塊區(qū)域就是“小箱子”唆香,我們可以把整數(shù)放進(jìn)去了袋马。

C語言中這樣在內(nèi)存中找一塊區(qū)域:

int a;

int又是一個(gè)新單詞虑凛,它是?Integer 的簡(jiǎn)寫桑谍,意思是整數(shù)祸挪。a 是我們給這塊區(qū)域起的名字;當(dāng)然也可以叫其他名字增热,例如 abc峻仇、mn123 等摄咆。

這個(gè)語句的意思是:在內(nèi)存中找一塊區(qū)域人断,命名為 a吭从,用它來存放整數(shù)。

注意 int 和 a 之間是有空格的恶迈,它們是兩個(gè)詞涩金。也注意最后的分號(hào),int a表達(dá)了完整的意思暇仲,是一個(gè)語句步做,要用分號(hào)來結(jié)束。

不過int a;僅僅是在內(nèi)存中找了一塊可以保存整數(shù)的區(qū)域熔吗,那么如何將 123辆床、100、999 這樣的數(shù)字放進(jìn)去呢桅狠?

C語言中這樣向內(nèi)存中放整數(shù):

a=123;

=是一個(gè)新符號(hào)讼载,它在數(shù)學(xué)中叫“等于號(hào)”,例如 1+2=3,但在C語言中,這個(gè)過程叫做賦值(Assign)。賦值是指把數(shù)據(jù)放到內(nèi)存的過程蚂维。

把上面的兩個(gè)語句連起來:

int a;

a=123;

就把 123 放到了一塊叫做 a 的內(nèi)存區(qū)域涂籽。你也可以寫成一個(gè)語句:

int a=123;

a 中的整數(shù)不是一成不變的锰悼,只要我們需要,隨時(shí)可以更改。更改的方式就是再次賦值臼婆,例如:

int a=123;

a=1000;

a=9999;

第二次賦值颁独,會(huì)把第一次的數(shù)據(jù)覆蓋(擦除)掉,也就是說歼冰,a 中最后的值是9999,123、1000 已經(jīng)不存在了,再也找不回來了吝羞。

因?yàn)?a 的值可以改變恨溜,所以我們給它起了一個(gè)形象的名字项戴,叫做變量(Variable)则吟。

int a;創(chuàng)造了一個(gè)變量 a敬扛,我們把這個(gè)過程叫做變量定義急侥。a=123;把 123 交給了變量 a打掘,我們把這個(gè)過程叫做給變量賦值横朋;又因?yàn)槭堑谝淮钨x值耐版,也稱變量的初始化腺阳,或者賦初值。

你可以先定義變量宏浩,再初始化靠瞎,例如:

int abc;

abc=999;

也可以在定義的同時(shí)進(jìn)行初始化华嘹,例如:

int abc=999;

這兩種方式是等價(jià)的耙厚。

數(shù)據(jù)類型(Data Type)

數(shù)據(jù)是放在內(nèi)存中的八匠,變量是給這塊內(nèi)存起的名字,有了變量就可以找到并使用這份數(shù)據(jù)藻雪。但問題是京郑,該如何使用呢?

我們知道些举,諸如數(shù)字跟狱、文字、符號(hào)户魏、圖形驶臊、音頻、視頻等數(shù)據(jù)都是以二進(jìn)制形式存儲(chǔ)在內(nèi)存中的叼丑,它們并沒有本質(zhì)上的區(qū)別关翎,那么,00010000 該理解為數(shù)字16呢鸠信,還是圖像中某個(gè)像素的顏色呢纵寝,還是要發(fā)出某個(gè)聲音呢?如果沒有特別指明星立,我們并不知道爽茴。

也就是說,內(nèi)存中的數(shù)據(jù)有多種解釋方式绰垂,使用之前必須要確定室奏;上面的int a;就表明,這份數(shù)據(jù)是整數(shù)辕坝,不能理解為像素窍奋、聲音等。int 有一個(gè)專業(yè)的稱呼酱畅,叫做數(shù)據(jù)類型(Data Type)。

顧名思義江场,數(shù)據(jù)類型用來說明數(shù)據(jù)的類型纺酸,確定了數(shù)據(jù)的解釋方式,讓計(jì)算機(jī)和程序員不會(huì)產(chǎn)生歧義址否。在C語言中餐蔬,有多種數(shù)據(jù)類型,例如:

說 ?明字符型短整型整型長(zhǎng)整型單精度浮點(diǎn)型雙精度浮點(diǎn)型無類型

數(shù)據(jù)類型charshortintlongfloatdoublevoid

這些是最基本的數(shù)據(jù)類型佑附,是C語言自帶的樊诺,如果我們需要,還可以通過它們組成更加復(fù)雜的數(shù)據(jù)類型音同,后面我們會(huì)一一講解词爬。

連續(xù)定義多個(gè)變量

為了讓程序的書寫更加簡(jiǎn)潔,C語言支持多個(gè)變量的連續(xù)定義权均,例如:

int a, b, c;

float m = 10.9, n = 20.56;

char p, q = '@';

連續(xù)定義的多個(gè)變量以逗號(hào),分隔顿膨,并且要擁有相同的數(shù)據(jù)類型锅锨;變量可以初始化,也可以不初始化恋沃。

數(shù)據(jù)的長(zhǎng)度(Length)

所謂數(shù)據(jù)長(zhǎng)度(Length)必搞,是指數(shù)據(jù)占用多少個(gè)字節(jié)。占用的字節(jié)越多囊咏,能存儲(chǔ)的數(shù)據(jù)就越多恕洲,對(duì)于數(shù)字來說,值就會(huì)更大梅割,反之能存儲(chǔ)的數(shù)據(jù)就有限研侣。

多個(gè)數(shù)據(jù)在內(nèi)存中是連續(xù)存儲(chǔ)的,彼此之間沒有明顯的界限炮捧,如果不明確指明數(shù)據(jù)的長(zhǎng)度庶诡,計(jì)算機(jī)就不知道何時(shí)存取結(jié)束。例如我們保存了一個(gè)整數(shù) 1000咆课,它占用4個(gè)字節(jié)的內(nèi)存末誓,而讀取時(shí)卻認(rèn)為它占用3個(gè)字節(jié)或5個(gè)字節(jié),這顯然是不正確的书蚪。

所以喇澡,在定義變量時(shí)還要指明數(shù)據(jù)的長(zhǎng)度。而這恰恰是數(shù)據(jù)類型的另外一個(gè)作用殊校。數(shù)據(jù)類型除了指明數(shù)據(jù)的解釋方式晴玖,還指明了數(shù)據(jù)的長(zhǎng)度。因?yàn)樵贑語言中为流,每一種數(shù)據(jù)類型所占用的字節(jié)數(shù)都是固定的呕屎,知道了數(shù)據(jù)類型,也就知道了數(shù)據(jù)的長(zhǎng)度敬察。

在32位環(huán)境中秀睛,各種數(shù)據(jù)類型的長(zhǎng)度一般如下:

說 ?明字符型短整型整型長(zhǎng)整型單精度浮點(diǎn)型雙精度浮點(diǎn)型

數(shù)據(jù)類型charshortintlongfloatdouble

長(zhǎng) ?度124448

C語言有多少種數(shù)據(jù)類型,每種數(shù)據(jù)類型長(zhǎng)度是多少莲祸、該如何使用蹂安,這是每一位C程序員都必須要掌握的,后續(xù)我們會(huì)一一講解锐帜。

最后的總結(jié)

數(shù)據(jù)是放在內(nèi)存中的田盈,在內(nèi)存中存取數(shù)據(jù)要明確三件事情:數(shù)據(jù)存儲(chǔ)在哪里、數(shù)據(jù)的長(zhǎng)度以及數(shù)據(jù)的處理方式缴阎。

變量名不僅僅是為數(shù)據(jù)起了一個(gè)好記的名字允瞧,還告訴我們數(shù)據(jù)存儲(chǔ)在哪里,使用數(shù)據(jù)時(shí),只要提供變量名即可瓷式;而數(shù)據(jù)類型則指明了數(shù)據(jù)的長(zhǎng)度和處理方式替饿。所以諸如int n;、char c;贸典、float money;這樣的形式就確定了數(shù)據(jù)在內(nèi)存中的所有要素视卢。

C語言提供的多種數(shù)據(jù)類型讓程序更加靈活和高效,同時(shí)也增加了學(xué)習(xí)成本廊驼。而有些編程語言据过,例如PHP、JavaScript等妒挎,在定義變量時(shí)不需要指明數(shù)據(jù)類型绳锅,編譯器會(huì)根據(jù)賦值情況自動(dòng)推演出數(shù)據(jù)類型,更加智能酝掩。

除了C語言鳞芙,Java、C++期虾、C#等在定義變量時(shí)也必須指明數(shù)據(jù)類型原朝,這樣的編程語言稱為強(qiáng)類型語言。而PHP镶苞、JavaScript等在定義變量時(shí)不必指明數(shù)據(jù)類型喳坠,編譯系統(tǒng)會(huì)自動(dòng)推演,這樣的編程語言稱為弱類型語言茂蚓。

強(qiáng)類型語言一旦確定了數(shù)據(jù)類型壕鹉,就不能再賦給其他類型的數(shù)據(jù),除非對(duì)數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換聋涨。弱類型語言沒有這種限制晾浴,一個(gè)變量,可以先賦給一個(gè)整數(shù)牛郑,然后再賦給一個(gè)字符串怠肋。

最后需要說明的是:數(shù)據(jù)類型只在定義變量時(shí)指明,而且必須指明淹朋;使用變量時(shí)無需再指明,因?yàn)榇藭r(shí)的數(shù)據(jù)類型已經(jīng)確定了钉答。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末础芍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子数尿,更是在濱河造成了極大的恐慌仑性,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件右蹦,死亡現(xiàn)場(chǎng)離奇詭異诊杆,居然都是意外死亡歼捐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門晨汹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來豹储,“玉大人,你說我怎么就攤上這事淘这“郏” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵铝穷,是天一觀的道長(zhǎng)钠怯。 經(jīng)常有香客問我,道長(zhǎng)曙聂,這世上最難降的妖魔是什么晦炊? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮宁脊,結(jié)果婚禮上断国,老公的妹妹穿的比我還像新娘。我一直安慰自己朦佩,他們只是感情好并思,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著语稠,像睡著了一般宋彼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上仙畦,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天输涕,我揣著相機(jī)與錄音,去河邊找鬼慨畸。 笑死莱坎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的寸士。 我是一名探鬼主播檐什,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼弱卡!你這毒婦竟也來了乃正?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤婶博,失蹤者是張志新(化名)和其女友劉穎瓮具,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡名党,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年叹阔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片传睹。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡耳幢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蒋歌,到底是詐尸還是另有隱情帅掘,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布堂油,位于F島的核電站修档,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏府框。R本人自食惡果不足惜吱窝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望迫靖。 院中可真熱鬧院峡,春花似錦、人聲如沸系宜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盹牧。三九已至俩垃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間汰寓,已是汗流浹背口柳。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留有滑,地道東北人跃闹。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像毛好,于是被迫代替她去往敵國(guó)和親望艺。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

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