C語言多維陣列的儲存表示和實現

2021-07-25 14:48:48 字數 1621 閱讀 4016

/*

* array.h

* * created on: 2011-9-21

* author:liusheng

*//*

* 標頭檔案stdarg.h中幾個巨集作用的講解

* va_list args; //宣告變數

* va_start(args, before); //開始解析。args指向before後面的引數

* 引數型別 var = va_arg(args, 引數型別);//取下乙個引數並返回。args指向下乙個引數

* va_end(args); //結束解析

* * #include * int arg_test(int a1,...)

* * va_end(args);

* * for(i = 0;i < 5;i ++)

* }*//*

* 其實多維陣列的表示與實現只要理解了那個表示每個資料位置的公式和鍊錶的操作就很簡單了

*/#include #include #include #define elemtype int

#define false 0

#define true 1

#define array_max_size 8

typedef struct array;

//初始化陣列

int initarray(array *a,int dim,...)

va_end(args);

a->base = (elemtype *)malloc(sizeof(elemtype) * elemsize);

if(a->base == null) return false;

a->constants = (int *)malloc(sizeof(int) * dim);

if(a->constants == null) return false;

a->constants[dim - 1] = 1;

for(i = dim -2;i >= 0;i --)

return true;

}//向陣列中插入資料

int insertelem(array *a,elemtype e,...)

va_end(temp);

printf("%d\t",*locat);

*locat = e;

return true;

}//銷毀陣列

int destroyarray(array *a)

/*
* test_arrcy.c

* 測試array.h

* created on: 2011-9-21

* author: root

*/#include "array.h"

#include #include int main()

//控制台結果
0	888	0	8

多維陣列的順序表示

多維陣列節點,有四個元素 struct array 譬如乙個2 3的二維陣列,dim就等於二,行優先儲存,bounds 0 就為2,bounds 1 就為3。對於constants,constant i 就是第i 1層的陣列中每一元素 陣列 的大小。對於行主序的2 3的二維陣列來說,constant...

C語言陣列之多維陣列

多維陣列 可以理解為存放陣列的陣列 以宿舍或公寓為例 元素 就是乙個乙個房間 1001 一層 相當於是一維陣列 一棟樓 就相當於二維陣列 乙個園區 就相當於三維陣列 乙個高教區 就相當於四位陣列 乙個城市 就相當於五維陣列 多維陣列定義演示 int arr 10 10 10 10 10 10 pri...

C語言基礎 多維陣列

今天我們來學習陣列的另一種用高階用法,多維陣列。多維陣列的定義與使用與數學定義一致,它可以表示多維的數值。一 二維陣列 例如我們先來定義乙個二維陣列 int array 3 4 我們可以像上面例子一樣在陣列定義時為其指定初始值,也可以在陣列定義之後再為其賦值。上面例子中我們定義了乙個具有3行的陣列,...