#include
int main()
{
char def(char x[],int n);
char s[5];
int n=5;
s[5]=def(s,n);
printf("%s",s);
return 0;
}
char def(char x[],int n)
{
int i;
char y[n];
scanf("%s",x);
for(i=0;i-1-i];
return y;
}
大一c语言课程,不是很懂,为什么return y保
报错,怎么修改
s[5]=def(s,n); s[5]已经越界了,下标范围0-4
#include <stdio.h>
void def(char x[], int n); //
int main()
{
char s[50] = {0}; //
int n = 50;
def(s, n); // s[5] = def(s, n);
printf("%s", s);
return 0;
}
void def(char x[], int n) //
{
int i, len = 0;
// char y[50];
char t;
scanf("%s", x); //;
while (x[len++]) ;
len--;
for (i = 0; i < len / 2; i++)
{
t = x[i];
x[i] = x[len - i - 1];
x[len - i - 1] = t;
}
}
y是是一个数组,当我们只写一个单独的数组名的时候,返回的是指针。所以我们函数返回要写成char*
望采纳,不会继续问