假设我已经定义了这3个数组:
int[][3] arr0 = {
{1,2,3},
{4,5,6}
};
int[][3] arr1 = {
{10,20,30},
{40,50,60},
{70,80,90}
};
int[][3] arr2 = {
{100,200,300},
{400,500,600},
{700,800,900},
{1000,1100,1200}
};
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个指向这些数组的指针数组,如:
// pseudo code example
arrays[] = {
arr0,
arr1,
arr2
};
Run Code Online (Sandbox Code Playgroud)
因为我想以这种方式从变量"arrayN"的第j个子数组中获取第k个值:
// pseudo code example
int value = arrays[N][j][k];
Run Code Online (Sandbox Code Playgroud)
例如:N为2,j为1且k为0,目标数组为arr2,因此该值应为400.
如何在C中正确编写此代码?我尝试了很多方法而没有工作.
指向数组的指针将无法正常工作.
为了存档你想要的东西,我认为使用指针数组int[3]是好的.
#include <stdio.h>
int main(void) {
int N = 2, j = 1, k = 0;
int arr0[][3] = { {1,2,3}, {4,5,6} };
int arr1[][3] = { {10,20,30}, {40,50,60}, {70,80,90} };
int arr2[][3] = { {100,200,300}, {400,500,600}, {700,800,900}, {1000,1100,1200} };
int (*arrays[])[3]={arr0,arr1,arr2};
int value = arrays[N][j][k];
printf("%d\n",value);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |