【发布时间】:2018-03-27 05:12:42
【问题描述】:
关于下面的代码,有没有办法初始化 arr0[] 和 arr1[] 以匹配输入参数选择的另外两个数组之一?或者是否可以使arr0[] 和arr1[] 成为一个常量数组?谢谢。
#define LENGTH 4
void foo(char id) {
const char arr_a0[] = {2,1,2,1};
const char arr_a1[] = {4,5,6,7};
const char arr_b0[] = {3,3,3,4};
const char arr_b1[] = {1,5,8,9};
char arr0[LENGTH];
char arr1[LENGTH];
int i;
switch(id) {
case 'a':
for (i = 0; i < LENGTH; ++i) {
arr0[i] = arr_a0[i];
arr1[i] = arr_a1[i];
}
break;
case 'b':
default:
for (i = 0; i < LENGTH; ++i) {
arr0[i] = arr_b0[i];
arr1[i] = arr_b1[i];
}
break;
}
/* Do something with arr0[] and arr1[] */
}
【问题讨论】:
-
考虑在代码后面使用指向数组的指针(初始化为指向两个数组之一),无论这两个数组在哪里使用。
-
@Yunnosch 谢谢。这就是我所需要的。必须检查我的基础知识:)
标签: c arrays initialization constants