【发布时间】:2026-01-22 23:40:01
【问题描述】:
我在 C 中有以下数组(使用随机名称)
char * inputs[6] = {
"Kangaroo my shoe", "Fly high dragonfly",
"Philosophical Monkey", "Jumping Ape",
"Fearful lemurs", "Tall Giraffes"
};
目标是用下一个元素交换第一个元素。就像这样做
char * inputs[6] = {
"Fly high dragonfly", "Kangaroo my shoe",
"Jumping Ape", "Philosophical Monkey",
"Tall Giraffes", "Fearful lemurs"
};
我已经尝试了以下以及更多。
ArrSwap(char *Arr[]){
int i;
for(i=0;i<6;i++){
void*temp = Arr[i];
Arr[i]=Arr[i+1];
Arr[i+1] = temp;
}
}
提前致谢!我花了几个小时试图弄清楚这一点,每次我这样做时都会以混乱的顺序结束,或者没有交换第一个和最后一个预期的任何元素。
【问题讨论】:
-
请提供minimal reproducible example 来证明您的问题。它应该特别展示是什么让您认为显示的代码有任何问题。理想情况下,展示不止一种尝试以及它们失败的不同方式。另外,我看不到“用下一个交换第一个元素”如何描述第一个显示的数组和第二个显示的数组之间的区别。请解释一下。
-
就像一般评论一样,我认为在编写这样的函数时最好将数组的大小作为参数。您在代码中使用的字面量越少,它就越灵活且易于调整