C 语言的基本数据类型
C 語言的基本數(shù)據(jù)類型
注:本文面向 C 語言初學(xué)者,如果你是熟手,那就不用看了。
有人問我,char、short、int、long、float、double 等這些關(guān)鍵字到底是什么意思,如果說他們是數(shù)據(jù)類型的話,那么為啥有這么多數(shù)據(jù)類型呢?
如果寫了一句:
int a;那么執(zhí)行的時(shí)候在內(nèi)存中會(huì)有什么變化呢?
橡皮泥大家都玩過吧,一般你買橡皮泥的時(shí)候,店家會(huì)贈(zèng)送一些模板。
上圖就是我在某寶的截圖,看見右下角的模具了吧,不同的模子,印出來的圖案不一樣,可以是城堡、金字塔、海星……
C 語言中的數(shù)據(jù)類型就和這些模子一樣,不同的模子對(duì)應(yīng)的內(nèi)存大小不一樣。
就拿 32 位系統(tǒng)來說, char 類型就是 1 字節(jié);int 類型就是 4 字節(jié); double 類型就是 8 字節(jié)。各種類型都有一個(gè)對(duì)應(yīng)的字節(jié)數(shù),具體是多少你可以用 sizeof 關(guān)鍵字測一下,因?yàn)椴煌钠脚_(tái)可能不一樣。
有人問,啥是內(nèi)存啊?
炒菜你會(huì)嗎?炒菜總要有個(gè)鍋吧,就是鐵板燒也要有個(gè)鐵板吧,如果說鍋是廚師加工菜品的地方,那么內(nèi)存就是 CPU 加工數(shù)據(jù)的地方。雖然 CPU 里面有寄存器,但是寄存器特別少,所以很多數(shù)據(jù)要放到內(nèi)存里,用的時(shí)候再調(diào)到寄存器。
簡單來說,內(nèi)存就是一個(gè)臨時(shí)存儲(chǔ)器,運(yùn)行程序時(shí),各種變量都會(huì)被放在內(nèi)存中,然后 CPU 來操縱它們,比如讀、寫、修改。
內(nèi)存一般按照字節(jié)來組織,字節(jié)是最基本的存儲(chǔ)單元。一個(gè)字節(jié)是 8 個(gè) bit,可存儲(chǔ)的數(shù)據(jù)范圍是 0-255;
如果你在代碼中寫了:
int a;...char b;假設(shè)是 32 位的平臺(tái),那么內(nèi)存視圖類似下圖:
右邊一個(gè)小格子代表一個(gè)字節(jié),變量 a 占了 4 個(gè)字節(jié),用綠色表示;變量 b 占用了1 個(gè)字節(jié),用藍(lán)色表示。左邊的連續(xù) 8 個(gè)小格子代表 1 個(gè)字節(jié)可存儲(chǔ) 8 個(gè) bit。
對(duì)一個(gè)變量賦值,就是修改它占用的內(nèi)存。
當(dāng)你在程序中寫 int a = 100;
在執(zhí)行這句話的時(shí)候,計(jì)算機(jī)干了兩件事。一是在內(nèi)存的空閑區(qū)域找連續(xù)的 4 個(gè)字節(jié),從此,這 4 個(gè)字節(jié)就和變量 a 聯(lián)系起來了,可以說,a 就代表了這塊內(nèi)存區(qū)域;二是把這個(gè)區(qū)域的值修改為 100。
以后你對(duì) a 的任何操作,都是對(duì)這片內(nèi)存的操作。這 4 個(gè)字節(jié)就是 a 的一畝三分地。
【End】
總結(jié)
以上是生活随笔為你收集整理的C 语言的基本数据类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 问题解决: SSR 的 1080 端口被
- 下一篇: C 语言基础之数组