欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

C語言二維數(shù)組

C語言二維數(shù)組?

相信題主應(yīng)該明白 C 語言中基本數(shù)據(jù)類型的變量,例如定義一個(gè) float 型變量:

float a = 3.14;

變量 a 能表示一個(gè)數(shù)值,但是現(xiàn)實(shí)生活中,僅僅使用一個(gè)單數(shù)值常常是不能完成任務(wù)的。更多情況下,需要解決的問題數(shù)據(jù)類型都是比較復(fù)雜的。

一維數(shù)組

小明班級(jí)有 40 名同學(xué),現(xiàn)在考試成績(jī)出來了,要求我們使用 C 語言把它們的成績(jī)從高到低排出來。要用 C 語言解決這個(gè)問題,首先要用 C 語言把 40 名同學(xué)的成績(jī)表示出來。但是總不可能定義 40 個(gè)變量來存儲(chǔ)各位同學(xué)的成績(jī)吧?

好在 C 語言提供了數(shù)組語法,我們定義一個(gè) score 數(shù)組用于解決這個(gè)問題是非常合適的:

float score[40];

score 有 40 個(gè)元素,可以表示 40 個(gè)同學(xué)的成績(jī)。C 語言在內(nèi)存中開辟一塊連續(xù)的內(nèi)存,供 score 使用,這塊內(nèi)存的大小等于 40*sizeof(float) 字節(jié)。

二維數(shù)組

要是現(xiàn)實(shí)生活中,所有問題都這么簡(jiǎn)單就好了,那我只要利用 C 語言的一維數(shù)組,就能走遍天下都不怕了。但是事與愿違,哪怕只是一個(gè) 9 宮格,一維數(shù)組已經(jīng)不方便描述它了。

難道要定義 3 個(gè)一維數(shù)組來描述這個(gè) 9 宮格?就算可以,要是這個(gè)表再大點(diǎn)呢?比如 1000行,1000列呢?更進(jìn)一步的,要是希望我們使用 C 語言描述笛卡爾二維坐標(biāo)系,使用一維數(shù)組豈不是麻煩死了?

二維坐標(biāo)系里的坐標(biāo)怎樣表示方便呢?數(shù)學(xué)中的表示方法就不錯(cuò),橫坐標(biāo)為 a,縱坐標(biāo)為 b 的點(diǎn),寫作(a, b)。

為了表述方便,使用 P 表示 9 宮格。如果在 P 中畫上坐標(biāo)軸,那每個(gè)格子描述起來就方便了,P(0,0) = 0, P(0,1) = 1,...

那要是 C 語言也能這么用,表示9宮格就太方便了,對(duì)不?實(shí)際上,還真可以。請(qǐng)看:

float pos[9][9];pos[0][0]=0;pos[0][1]=1;

幾乎與用坐標(biāo)描述一模一樣,這可比用一維數(shù)組描述方便多了。類似的,三維數(shù)組,四維數(shù)組,都有適合使用它們的時(shí)候,理解方法也同二維數(shù)組相似。

二維數(shù)組的內(nèi)存分配

對(duì)于人類來說方便的,死板的計(jì)算機(jī)不一定也這么認(rèn)為。實(shí)際上,C 語言希望“規(guī)則”越少越好,它不怕麻煩,就怕“靈活”。

C語言對(duì)內(nèi)存的分配方式,可不會(huì)隨著人類認(rèn)為的“維度”變化而變化。它就一種分配內(nèi)存的方式,不管你是幾維數(shù)組,分配內(nèi)存統(tǒng)一按照線性劃分。

對(duì)于 P[1][2],C語言會(huì)將其解釋為 P[1*3+2]。計(jì)算機(jī)最恨的就是“動(dòng)腦”了,能用一維解決,就絕對(duì)不用二維。

而我們?nèi)祟悾钕矚g的就是,怎樣方便怎樣來。這也算是人與機(jī)器的區(qū)別吧。

歡迎在評(píng)論區(qū)一起討論,質(zhì)疑。文章都是手打原創(chuàng),每天最淺顯的介紹C語言、linux等嵌入式開發(fā),喜歡我的文章就關(guān)注一波吧,可以看到最新更新和之前的文章哦。

java數(shù)組用花括號(hào),C語言二維數(shù)組