非常抱歉,我之前的回答有误。在指针数组中,你需要使用指针来访问数组的元素,并且拿到数组长度也需要 ...
arr1 length: 1 2 3 4 5 8 0 0
arr2 length: 6 7 8 9 10 1 2 3
arr3 length: 11 12 13 14 15 6 7 8
arr4 length: 16 17 18 19 20 11 12 13
arr5 length: 21 22 23 24 25 16 17 18这回的运行结果 数据总线 发表于 2024-02-28 17:20
arr1 length: 1 2 3 4 5 8 0 0
arr2 length: 6 7 8 9 ...
非常抱歉,之前的代码还是有问题。这里有一种修正方案:#include int main() { unsigned char arr1[] = {1, 2, 3, 4, 5}; unsigned char arr2[] = {6, 7, 8, 9, 10}; unsigned char arr3[] = {11, 12, 13, 14, 15}; unsigned char arr4[] = {16, 17, 18, 19, 20}; unsigned char arr5[] = {21, 22, 23, 24, 25}; unsigned char *arr_tab[] = {arr1, arr2, arr3, arr4, arr5}; int arr_count = sizeof(arr_tab) / sizeof(arr_tab); for (int i = 0; i < arr_count; i++) { unsigned char *current_arr = arr_tab; int arr_length = sizeof(current_arr) / sizeof(current_arr); printf("arr%d length: ", i + 1); for (int j = 0; j < arr_length; j++) { printf("%d ", current_arr); } printf("\n"); } return 0;}在这个修正后的代码中,我们使用了数组来存储每个数组的元素,并且使用 `sizeof(arr_tab) / sizeof(arr_tab)` 来计算指针数组的长度。然后,我们使用 `sizeof(current_arr) / sizeof(current_arr)` 来计算每个数组的长度,并通过循环遍历打印出每个数组的元素。非常抱歉之前的回答还是有误导性,希望这次的回答是正确的。如果还有任何问题,请随时追问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-2-28 17:19
非常抱歉,我之前的回答有误。在指针数组中,你需要使用指针来访问数组的元素,并且拿到数组长度也需要 ...
还是不行,要不我再想想看吧,非常感谢你耐心的回答,谢谢你~~~ 数据总线 发表于 2024-02-28 17:22
还是不行,要不我再想想看吧,非常感谢你耐心的回答,谢 ...
非常抱歉,之前的回答依然有误。在你的代码中,arr1、arr2、arr3、arr4和arr5都是单个字符变量,并不是数组。所以我们无法通过指针数组访问它们。如果你想访问它们并输出元素,可以直接使用原始的方式来操作。例如,你可以修改data_Send函数来接收cnt参数,并根据cnt的值选择对应的变量进行操作。以下是修改后的代码示例:
#include <stdio.h>
void data_Send(unsigned char cnt) {
unsigned char *arr;
if (cnt == 0) {
arr = &arr1;
printf("arr1 length: ");
} else if (cnt == 1) {
arr = &arr2;
printf("arr2 length: ");
} else if (cnt == 2) {
arr = &arr3;
printf("arr3 length: ");
} else if (cnt == 3) {
arr = &arr4;
printf("arr4 length: ");
} else if (cnt == 4) {
arr = &arr5;
printf("arr5 length: ");
} else {
printf("Invalid input");
return;
}
for (int i = 0; i < 8; i++) {
printf("%d ", arr);
}
printf("\n");
}
int main() {
data_Send(0);
return 0;
}
这段代码中,我们根据传入的cnt值判断要操作的变量,并用指针arr指向对应的变量。然后,使用for循环遍历arr指针所指向的变量,并打印出每个元素。
希望这次能够帮到你,如果还有任何问题,请随时提问。感谢你的耐心和理解!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
1
[2]