-
1 # TonyDeng
-
2 # 重慶葉宏
學習C語言,這樣瞎悟能學好嗎。
多維陣列是在連續的記憶體中分配的,這是一個語言的基本設施。你用多個一維陣列代替何必呢。若需要三維陣列你仍用一維陣列代替,你煩不煩麼。
現在新版本C語言標準用變長多維陣列,用處大。處理矩陣、行列式方便。
-
3 # 豬fans
怎麼沒用?那我問你,一個學校有10個班級,每個班級有40名同學,怎麼把這堆資料暫存在記憶體中?不就是二維陣列嗎?
樓上說二維陣列是兩個1維陣列的結論。我覺得他可能沒用過二維陣列寫案例,兩個下標為10的char佔用位元組為20。而char[10][10]佔用是100個位元組。根本不是同一個東西
-
4 # studee
二維陣列可以使用矩陣論相關知識,當處理的數字量較小的時候,一維陣列和二維陣列沒有什麼區別,但是當這個數字量很大,比如說10萬甚至是幾十萬的時候,那麼利用矩陣論的相關知識可以提高你的計算效率。
-
5 # Ren
記憶體還是那片記憶體,陣列還是那個陣列,就是怎麼索引的問題,一維索引也能解決問題,只要偏移量計算對了就行,二維陣列或者多維陣列更像是個語法糖,它幫你計算索引偏移量,看起來舒服一些,然而和一維陣列一樣,也不幫你檢查越界,也是沒誰了[捂臉]。
-
6 # 為啥真話沒人信
一個a[m][n]的二維陣列具有m x n個儲存空間
而兩個一維陣列a[m],b[n]只有m + n個儲存空間,怎麼可以替代二維陣列?二維陣列只是C語言對資料的數學表達形式,實際儲存空間還是一維的,但二維陣列在使用時,編譯器可以幫助我們完成下標到儲存空間的位置的計算,便於使用。當然我們完全可以用一個一維陣列代表N維陣列,但下標位置就要我們自己手動計算了。
-
7 # 芝麻小龍
你還是轉行吧。這個問題太基本了。上過初中的人都知道二維陣列的元素數量是兩個維度的乘積,兩個一維陣列是兩根線。二維陣列比一維陣列,元素多很多。根本就不是一回事。你學程式設計真的沒有希望,趕快轉行。我就夠笨的了,你比我還笨。
-
8 # 智慧情感里奧
到圖形處理這類演算法的時候,就會明白更多了。
我們常用的矩陣要存在二維數組裡。
能想到的好處有兩點:
儲存空間的分配這樣可以獲得連續儲存的空間。
這樣就能提高運算效率。
尤其在大規模或者頻繁資料處理的時候。
定址、做交換、讀寫儲存,都會有效率提高。
指標的移動,使用二維陣列也更方便。
做為複雜演算法的引數做影象處理,用到矩陣,向量運算等複雜邏輯的函式時,需要這種便利的符號作為輸入引數。
圖形處理的時候,基本就是矩陣運算,旋轉、縮放、平移動,這三個基本運算用到矩陣。
把這些基本功能封裝成函式,這些函式的輸入引數,就是二維陣列的入口指標。
所以還是有很多用處的,離不開二維陣列演算法是抽象的,越抽象,越通用。
-
9 # 沙漠海179470315
要你這麼說
陣列也沒用了
一萬個變數就能解決的事
實在不行,就十萬個變數好了^0^~[呲牙]
-
10 # superjelly
你也太逗了,兩個一維陣列能代替二維陣列?你連C語言的入門都沒理解。打個最簡單的比方: 一個班有30名學生,每個學生有,語文,數學,英語,物理,化學五科成績,現在把所有學生成績輸入電腦,用二維陣列是 int[30][5] ,你用你的兩個一維錄進去試試?
-
11 # 程式碼搬家
這樣說就容易理解了,二個一維陣列等於兩條線,是在兩條線上分別存m和n個數據。
一個二維陣列則是一個面,即m個線,毎條線上n個數據,理論上每條線資料是相等的(包括空值),可以精確定位,如第5條線上的第7個數據。
-
12 # 使用者7888976079376
舉個例子,石器時代用石斧砍樹,古代用鐵斧砍樹,現代用電鋸砍樹,都是砍樹,用石頭也能解決為什麼要用電鋸呢,C語言也是一樣的,語言只是個工具,能快速用它做出活來才是王道,二維陣列的存在就是為了提升工作效率的,如果你能想出更好的解決辦法那自然更好。
-
13 # 夏雪來賓
二維陣列有沒有必要?放一放再說。
兩個一維?不就是二維嗎?
只是用二維陣列表達更簡潔。
你用“C”編過實用程式嗎?
-
14 # 霹靂263521714453
當然不一樣 邏輯概念更好的表示 演算法的閱讀上更好的理解 你一維是都能實現 那在邏輯理解上能一樣嗎? 如果只是實現就可以了 還要高階語言幹啥用 都用匯編甚至機器語言本身就完了
-
15 # 繁星落石
多維陣列表示的是同一個主體不同維度上的關係,當然分解開來都是一維陣列,但是如果全部使用一維陣列來表示這個主體,那還需要對應的維度資訊,單純的陣列肯定是不夠的。
-
16 # gzluke
我也覺得C語言沒用,明明可以用匯編語言解決的,為什麼要用C語言?
你的論點和上面這句話一樣!
所以使用二維陣列會更清晰明瞭地展現資料結構,比起你繞著彎用一位陣列來模擬二維陣列,更容易讓別人清楚你的程式設計思路。
-
17 # Bingqimao
二維陣列沒用?感覺這是還在上學的學生提的問題,簡單說個例子,假如遊戲中怪物的行走路線是[[x,y], [x,y],[x,y]......],陣列長度是未知的,不同怪物的行走長度肯定也是不一樣的,你滑鼠點選地面,人物行走,A*演算法計算出的二維陣列的長度,每次肯定也是不一樣的。這種例子多了去了,你兩個一維陣列能解決這種長度未知的問題,開玩笑吧?
-
18 # 來看看哈哈哈哈哈哈哈
已知長寬為1-100的整數,用查表法求面積。用一維10000個數據可以,二維100*100可以,沒聽說用兩個100的一維可以搞定呀?
-
19 # 骷狼望月
兩條線和一個面哪個資料多?哪個好用?麵包含很多線,但線代替不了面!只能是面對問題的時候哪種更合適,而不是哪種沒用!
-
20 # 西安打工娃
你覺得沒用是因為你還沒有用到。
舉個例子一張黑白色圖片,你可以用一個二維陣列a[m][n]表示;彩色照片你可以用三維陣列表示a[3][m][n],第一個緯度3個變數代表rgb值。
回覆列表
C語言是沒有二維陣列的,它只有陣列的陣列,可以不斷巢狀,但那不是多維陣列。所以你的感覺對,處理的方式就是一維陣列。
不要以為x[i][j]這樣形式的陣列是二維陣列,不是,在C語言中不是,這只是i個一維陣列[j],真的是兩個一維陣列。其他語言有多維陣列,C語言沒有。