| Init( ) | 初始化 |
| Destroy( ) | 销毁 |
| Value( ) | 取值 |
| Assign( ) | 赋值 |
| Create( ) | 生成 |
//使用数组名代表的地址配合索引 loc( arr[i] )=loc( arr )+i*sizeof( elType ) //使用首元素地址配合索引 loc( arr[i] )=loc( arr[0] )+i*sizeof( elType )
#include <stdio.h>
int main() {
int arr[5];
printf("arr=%p\n", arr);
printf("arr[0]=%p\n", &arr[0]);
for (int i = 0; i < 5; i++)
{
printf("item[%d]=%p\n", i, &arr[i]);
}
return 0;
}
//参考结果为:
arr=0x7ffd5f830d80
arr[0]=0x7ffd5f830d80
item[0]=0x7ffd5f830d80
item[1]=0x7ffd5f830d84
item[2]=0x7ffd5f830d88
item[3]=0x7ffd5f830d8c
item[4]=0x7ffd5f830d90
loc(arr[i][j])=loc(arr[0][0])+(i*n+j)*sizeof(elType)
| a00 | a01 | a02 |
| a10 | a11 | a12 |
| a20 | a21 | a22 |
| a30 | a31 | a33 |
| [a00 a01 a02] | [a10 a11 a12] | [a20 a21 a22] | [a30 a31 a32] |
loc(arr[i][j])=loc(arr[0][0])+(j*m+i)*sizeof(elType)
| a00 | a01 | a02 |
| a10 | a11 | a12 |
| a20 | a21 | a22 |
| a30 | a31 | a33 |
| [a00 a10 a20] | [a01 a11 a21] | [a02 a12 a22] | [a03 a13 a23] |
| a00 | a01 | a02 | a03 |
| a10 | a11 | a12 | a13 |
| a20 | a21 | a22 | a23 |
| a30 | a31 | a33 | a33 |
| a00 | a01 | a02 | a03 | a11 | a12 | a13 | a22 | a23 | a33 |
| a00 | a10 | a11 | a20 | a21 | a22 | a30 | a31 | a32 | a33 |
| a00 | C | C | C |
| a10 | a11 | C | C |
| a20 | a21 | a22 | C |
| a30 | a31 | a33 | a33 |
| a00 | a10 | a11 | a20 | a21 | a22 | a30 | a31 | a32 | a33 | C |
| a00 | a01 | a02 | a03 |
| C | a11 | a12 | a13 |
| C | C | a22 | a23 |
| C | C | C | a33 |
| a00 | a01 | a02 | a03 | a11 | a12 | a13 | a22 | a23 | a33 | C |
typedef struct Arr
{
int row, col;
int data;
} Array;
| a00 | a01 | a02 | a03 |
| a10 | a11 | a12 | a13 |
| a20 | a21 | a22 | a23 |
| a30 | a31 | a33 | a33 |
| a00 | a10 | a20 | a30 |
| a01 | a11 | a21 | a31 |
| a02 | a12 | a22 | a32 |
| a03 | a13 | a33 | a33 |