指针数组作形参,对应的另一个已赋值的指针数组作实参时,为何必须传首地址,而不能传第二或第三元素的地址?
我从第五个位置开始的
/**********************************
@
@
@Time :2021/06/29 20:16
@author :Keep Doing this(小小的鹏弟)
@SoftWare : Visual Studio 2019
**********************************/
#include<stdio.h>
#include<stdlib.h>
#pragma warning(disable:4996)
#include<string.h>
int sort(char *strings[], int n)
{
char* temp;
int i, j;
for (i = 0; i < n; i++)
{
for (j = i + 1; j < n; j++)
{
if (strcmp(strings[i], strings[j]) > 0)
{
temp = strings[i];
strings[i] = strings[j];
strings[j] = temp;
}
}
}
return 0;
}
int main() {
int n = 7; int i;
char* month[] = {"january",
"february",
"march",
"april",
"may",
"june",
"july",
"august",
"september",
"october",
"novermber",
"december"
};
sort(&month[5], n);
printf("排序12月:\n");
for (i = 0; i < n; i++)
{
printf("%s\n", month[i]);
}
}
有什么问题么
谁说不能的
#include<stdio.h> #include<string.h> int sort(char *strings[], int n) {
char *temp;
int i, j;
for (i = 0; i < n; i++)
{
for (j = i + 1; j < n; j++)
{
if (strcmp(strings[i], strings[j]) > 0)
{
temp = strings[i];
strings[i] = strings[j];
strings[j] = temp;
}
}
}
}
main() { int n = 12; int i;
char *month[] = { "january",
"february",
"march",
"april",
"may",
"june",
"july",
"august",
"september",
"october",
"novermber",
"december"
};
sort(&month[0], n);
printf("排序12月:\n");
for (i = 0; i < n; i++)
{
printf("%s\n", month[i]);
}
} 比如这段代码,调用函数sort()那里,输入&month[0]就可以,输入&month[1]就不行