|
14鱼币
#include <stdio.h>
char mystyle(char *array,int i);
char mystyle(char *array,int i)//将接收的数组位置颠倒后返回
{
i--;
char *m = array[i];
for(i;i > 0;i--)
{
m[i] = *array++;
}
return array;
}
int main()
{
char num[10];
for(int i = 0;( num[i] = getchar()) != '\n';i++)
{
if(i == 9) num[i] = '\0';
}
printf("%s",mystyle(&num,i));
return 0;
}
单从语法上说,
第一行红色是因为char *m = array[ i ]; 这行,等号左边是char*类型,等号右边是char类型,二者不匹配。
第二行红色是因为return array;这行,返回的array是一个char*,而函数类型定义的却是char,二者不匹配。
第三行红色是因为printf("%s",mystyle(&num,i));这行中的 i,i 是在for(int i = 0;......)这里声明的,它的作用域是for块,而printf中的 i 是在for块后面的,已超出了 i 的作用域。
|
最佳答案
查看完整内容
单从语法上说,
第一行红色是因为char *m = array[ i ]; 这行,等号左边是char*类型,等号右边是char类型,二者不匹配。
第二行红色是因为return array;这行,返回的array是一个char*,而函数类型定义的却是char,二者不匹配。
第三行红色是因为printf("%s",mystyle(&num,i));这行中的 i,i 是在for(int i = 0;......)这里声明的,它的作用域是for块,而printf中的 i 是在for块后面的,已超出了 i 的作用域。
|