c語言中怎麼給三維陣列賦值,C語言中怎麼給三維陣列賦值。

2021-05-31 17:02:11 字數 3800 閱讀 2340

1樓:匿名使用者

struct point;

point* p1 = (point*)malloc(你需要的數目*sizeof(point));

完全不需要3維陣列, 一個結構加個指標就可以了.

c語言中三維陣列的賦值問題

2樓:匿名使用者

int limit[4][5][2]=, , , , ,, , , , ,

, , , , ,

, , , , };

你這樣定義是:int limit[20][2]。int limit[4][5][2]應該是

int limit[4][5][2]=, , , , },, , , , },

, , , , },

, , , , } };

c語言 三維陣列初始化

3樓:59分粑粑

方法和詳細的操作步驟如下:

1、第一步,需要定義陣列。

陣列的常見型別是int,float,char等,可以通過輸入進行定義,見下圖,轉到下面的步驟。

2、第二步,執行完上面的操作之後,陣列的名稱可以自定義,見下圖,轉到下面的步驟。

3、第三步,執行完上面的操作之後,陣列的大小是在陣列定義階段確定的,輸入數字是陣列的大小,見下圖,轉到下面的步驟。

4、第四步,執行完上面的操作之後,可以初始化陣列並將其輸入到大括號{}中,見下圖,轉到下面的步驟。

5、第五步,執行完上面的操作之後,如果初始輸入數字未達到定義的長度,則預設初始化為0,見下圖,轉到下面的步驟。

6、第六步,執行完上面的操作之後,在陣列定義和初始化之後新增一個分號,單擊enter鍵即可,見下圖。這樣,就解決了這個問題了。

4樓:匿名使用者

例如:int a[3][2][4] =

, },

, },

, }};

c語言、三維陣列

5樓:bc警長

先說二維,可以這麼理解:

int n[3]有3個int

那麼,int m[5][3]有5個int[3]賦值時:

n[1]=3把3給1號

m[4]=m[4]是個int[3]型別,這麼賦值,也就是這麼賦值:

m[4]的[0]是5:m[4][0]=5

m[4][1]=9

m[4][2]=4

懂了嗎?三維甚至更多維大同小異,比如

int k[4][5][3]有4個int[5][3]這個概念應該不難理解的,就是各種型別,不停的加下標,加下標,加下標,下標,標……

曾寫過一個模擬7段碼(看看紅綠燈上的倒計時是怎麼顯示的),共有2行顯示,每行10個數字,每個數字7段,整個系統狀態就是用一個bool[2][10][7]確定的

6樓:夢中夢

在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]

總結的說,就是「維數最高優先儲存」

至於什麼情況用三維陣列,這要看你程式設計思想了,當你想編的程式抽象成三維的東西,就用三維陣列來表示,就如矩陣似的,我們把矩陣看成是一個圖,二維的,所以用了二維陣列

希望可以幫助你

7樓:匿名使用者

三維陣列和二維陣列一維陣列一樣啊,使用的時候用3個下標,下標的起點也是0

初始化也就是二維陣列的推廣,因為是行序優先存放,所以沒有完全初始化的後面的元素自動賦初值0

如果有三個控制量就用三維陣列啊,比方是三維空間xyz

8樓:燕曉

這個得需要計算機專業知識才行。

c語言:三維陣列賦值給二維陣列,為什麼可以這樣?裡面的數值不會改變了嗎?

9樓:

你的陣列a其實仍然是二維陣列,因為你給的值顯然是一個二維陣列的值即1,2,3

3,2,1

2,5,6

你並沒有真正做一個三維陣列,所以賦給二維陣列完全沒問題,陣列b的值仍然是像上面那樣的形式

如何對三維字元陣列賦值

10樓:匿名使用者

只用前二維指定位置:

gets(a[0][0]);

gets(a[0][2]);

你可以將這個三維(n維)字元陣列想像成一個有string型別變數(假設c中也存在string型別)的二維(n-1維)的陣列。

也就是說,這個a陣列中共有2*3=6個長度為8的字元陣列,分為2行3列。

11樓:傲世修羅王

#include

void main()}}

getchar() ;

}不能用gets,它是獲取字串的

12樓:冷月照西風

#define high 10

#define mid 9

#define low 8

char str[high][mid][low];//定義三維陣列int i,j,k;//定義迴圈變數

//最常用的多重for迴圈實現

for(i=0;i

for(j=0;j

for(k=0;k

scanf("%c",&str[i][j][k]);

13樓:討厭閃耀生物

對於char a[2][3][8];

輸入:gets((char *)a);

a本身是第一個字元的地址,強轉一下就好。

c語言中三維陣列怎樣初始化為0

14樓:曠野行風

memset(void*p,int ch,size_t n)函式功能:以指標p指向的記憶體空間為起始,將其後n個位元組的空間全部賦值為ch.該函式標頭檔案為或

使用該函式初始化陣列為0

#include

#include

void main()

執行結果

15樓:匿名使用者

陣列可以初始化

用一個簡單的測試程式就可以明白了

#include

void main()

;for(int i=0;i<10;i++)for(int j=0;j<10;j++)for(int k=0;k<10;k++)printf("a[%d][%d][%d]:%d\n",i,j,k,a[i][j][k]);}

16樓:天——天

#include "windows.h"

void main()

我在vs2005下執行的

或者在定

義的時候進行,如int a[3][10][10] = ;即可

17樓:匿名使用者

可以,當初始化器中的值少於元素數量時,剩餘部分元素值都被初始化為0

18樓:匿名使用者

除錯一下不就知道了。

我試過了,可以的。

從理論上講,a[10][10][10]=將x賦值給a[0][0][0](此處x=0),其他元素電腦將隨著這個語句被賦值0

C語言 給陣列中的元素賦值

好像沒有什麼直接的辦法,只有使用迴圈語句來判斷最後一個出現的非0值為最後一個元素,也就是說如果你初始化為1,2,3,0,4,5這樣有辦法判斷,但若初始化為1,2,0,3,0,0就沒辦法判斷了,只能判斷到3,因為3是最後一個非0值。因為系統預設會把其他部分都初始化為0,所以沒有辦法判斷 沒有賦值的元素...

c語言中陣列動態增長有哪些方法,c語言 一維陣列如何增加長度

可以,但不能是靜態陣列如int a 50 左邊分配在堆疊上,分配在堆疊上的變數 不能在編譯時不知道分多少空間,並且分了多少空間就是多少。如果想讓陣列大小動態分配,可以使用下面做法,記得用完要free int a int malloc n sizeof int n是陣列的大小。或者這樣calloc函式...

c語言中二維陣列行指標是什麼,C語言中二維陣列行指標是什麼

就是指向每一行的指標,比如說二維陣列a 2 3 a 0 代表的是二維陣列第零行的首地址相當於 a 0 0 a 1 代表的是二維陣列第一行的首地址相當於 a 1 0 a 0 1代表的是二維陣列第零行,第一列的地址相當於 a 0 1 行指標其實就是二級指標,也就是說它指向一個一維陣列,int a 2 3...