关于C语言数组的地址

发布网友

我来回答

3个回答

热心网友

数组名就是数组的首地址啊。

直接使用swaps(a,b)就可以


不过其实你子函数就写错了,根本就不是你所说的用数组地址做形参。而是要求用一个 二维数组或者是指针数组作为实参。

正确的代码如下


#include<string.h>
#include<stdio.h>
char d[100];
void swaps(char *p,char *q)
{
if(strcmp(p,q)>0)
{
strcpy(d,p);
strcpy(p,q);
strcpy(q,d);
}
}

int main()
{
char a[]="",b[]="",c[]="";
printf("请输入三个字符串,每输入一个字符串按回车确认\n");
gets(a);
gets(b);
gets(c);
swaps(a,b);

return 0;
}

 void swaps(char *p,char *q)就是要求传一个地址(指针),而如果你使用

void swaps(char *p[],char *q[])则意义就不对了,而是要求一个指针数组

热心网友

char *p = a;
p 所指向的就是数组a的地址。追问char*p1=a,char*p2=b,char*p3=c;
swaps(p1,p2);
但是这样还是无法通过编译,问题出在哪里?

热心网友

你不觉得你的代码有问题么?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com