-1

嗨朋友们,我有这些项目,我将在主屏幕上显示大约 10 个图标,当您选择它时,每个图标会显示另外 5 个图像(这些图像的数量不同,但我们将其视为每个图标 5 个)。IT是一种主屏幕和子屏幕。现在,我将这近 88 张图像作为图标显示在屏幕上。我为每个图像创建了 const char 数组,所以我有一个包含 88 个 const char 类型的数组的列表,每个数组的信息名称都很少。我的想法是使用所有这些名称创建另一个数组,并在必要时调用它们。如下例:

 const char  *arr_1[] = {"one_ele_zero", "one_ele_one", "one_ele_two", "one_ele_three"};

 const char  *arr_2[] = {"two_ele_zero", "two_ele_one", "two_ele_two", "two_ele_three"};

 const char  *arr_3[] = {"three_ele_zero", "three_ele_one", "three_ele_two", "three_ele_three"};


 const char **arr_all[] = {arr_1, arr_2, arr_3};


 int main()
 {
     printf("%s\n",*arr_all[0]);

     system("PAUSE");

     return 0;


 }

此代码编译,我可以打印第一个数组第 0 个位置字符串,但我不知道如何打印其余部分。如果你们认为还有其他方法可以做到这一点,我是 C 的新手……请建议我或指导我使用一些示例程序……谢谢。

4

2 回答 2

1

你必须做这样的事情,

for(i=0;i<3;i++)
 for(j=0;j<3;j++)
     printf("%s\n",*(arr_all[i]+j));

arr_all[]包含 和 的基arr_1[]地址。如果你只使用arr_2[]arr_3[]

printf("%s\n",*arr_all[0]);仅打印 arr_1[] printf("%s\n",*arr_all[i]);0<=i<3第一个元素,仅打印每个 arr_1[] 的第一个元素, printf("%s\n",*(arr_all[i]+j));0<=i<3获取(ar_1, arr_2, arr_3) 数组0<=j<3的基地址,arr_x[]并使用打印该数组的每个元素j

于 2013-04-11T07:09:32.370 回答
0
printf("%s\n", arr_all[0][1]);//one_ele_one
于 2013-04-11T08:20:42.333 回答