Ⅰ c語言三維數組的作用
一維數組只有一行元素,相當於一本書中的一行。比如存儲一個學生6門課的成績。
二維數組分為若干行若干列,相當於一本書中的一頁。比如存儲40個學生6門課的成績。
三維數組分為若干行若干列若干頁,相當於一本書。用於存儲有三個維度(三個方向)的一批數據。比如存儲10個班級,每班40個學生,6門課的成績。(當然也可以理解成400個學生,6門課的成績,並用二維數組存儲,但是不容易體現班級的概念。)
Ⅱ C語言中怎麼給三維數組賦值。
struct Point{
int x;
int y;
};
Point* P1 = (Point*)malloc(你需要的數目*sizeof(Point));
完全不需要3維數組, 一個結構加個指針就可以了.
Ⅲ C語言三維數組(本人新手)
輸出格式沒有,就是printf("%d",......),後面的輸出表達式也不對,三維數組表示方法不正確,你想輸出啥
Ⅳ 關於c語言的三維數組的輸出
樓上正解,其實你主要考慮下,數組在內存中存儲的時候,是按照一維數組的模式進行存儲的,這也就是為什麼我們可以把a[2][2][3]強制轉換成一個int*,從而通過下標就可以訪問到對應的元素
Ⅳ c語言、三維數組
你就想像成全是一維的,C原來設計也只有一維。你可以想像成有個特殊的數組裡面每個元素又是一個數組,而這個數組裡面的每個元素他又是一個數組。你要說用線性代數可以空間理解,但是3維以上你給我空間想像一下啊,我想不到。指針當然要佔內存。雖然它指向某個內存的地方,但是他同樣需要某個東西指向它啊。打個比方好比它就是個路標,指向某個方向。但是機器編譯需要知道指向路標的路標一樣。我是這樣理解的。
Ⅵ 三維數組怎麼理解c語言
先理解二維數組,int a[3][4]; 理解成3行4列。例如:
1 2 3 4 // 第1行
5 6 7 8 // 第2行
9 10 11 12 // 第3行。 你可以理解成 行索引號 是直角坐標y值,列索引號 是直角坐標x值.
現在變3維 int a[2][3][4]; 理解成深度(或高度)有2層的 3行4列 的數組。
原來的 1 到 12 數值在 第一層,現在 有了第二層,第二層 數值是
13 14 15 16
17 18 19 20
21 22 23 34
所以 3 維數組 int a[z][y][x], 就有 z 層 y*x 大小的矩陣。
Ⅶ C語言中三維數組的賦值問題
int limit[4][5][2]={{3,8}, {4,9}, {5,0}, {1,6}, {2,7},
{2,7}, {3,8}, {4,9}, {5,0}, {1,6},
{1,6}, {2,7}, {3,8}, {4,9}, {5,0},
{1,6}, {2,7}, {3,8}, {4,9}, {5,0}};
你這樣定義是:int limit[20][2]。int limit[4][5][2]應該是
int limit[4][5][2]={ {{3,8}, {4,9}, {5,0}, {1,6}, {2,7}},
{{2,7}, {3,8}, {4,9}, {5,0}, {1,6}},
{{1,6}, {2,7}, {3,8}, {4,9}, {5,0}},
{{1,6}, {2,7}, {3,8}, {4,9}, {5,0}} };
Ⅷ c語言三維數組問題
在c語言,數組存儲空間是連續的,所以三維數組其實可以看成特殊的一維數組,p[3][4][5]可以看成p[3*4*5]的一維數組,因此p[1][7][1]
=
p[1*4×5+7*5+1]
=
p[56]
56<3*4*5=60
,所以p[1][7][1]沒有超出范圍
Ⅸ c語言三維數組怎麼用的
在c語言中,多維數組的存放規律都是第一維下標變化的最慢,越往後維數越高,下標變化越快,例如:對於三位數組a[2][2][2],其賦值順序就是:
a[0][0][0]
a[0][0][1]
a[0][1][0]
a[0][1][1]
a[1][0][0]
a[1][0][1]
a[1][1][0]
a[1][1][1]
總結的說,就是「維數最高優先存儲」
至於什麼情況用三維數組,這要看你編程思想了,當你想編的程序抽象成三維的東西,就用三維數組來表示,就如矩陣似的,我們把矩陣看成是一個圖,二維的,所以用了二維數組
希望可以幫助你