void dd(char* c)
{
int i=0;int j;
while (c[i]) i++;
i=i-1;
for(j=0;j<i/2;j++)
swap(c[j],c[i-j]);
}
int main()
{
char c[]="123";
printf("%s",dd(c));
}
printf("%s",dd(c));
->
dd(c);
printf("%s",c);
主函数中printf()的输出参数是dd( )子函数的返回值,而子函数的返回值你设置的是void,肯定就出现问题了。
好比我不给你钱,叫你去买东西,你肯定不干,对吧
因为你的dd函数定义的返回值为void,而你使用时却将其作为有返回值的函数使用了,代入printf的第一个参数中了。
应该修正你的printf代码,不能打印dd(c)因为它没有返回值的。
printf("%s",dd(c)); 语句有问题。
printf("%s",字符串指针); 这样才能输出。
dd(c) 返回值为空,也就是 void 类型。printf报错(函数参数无法匹配)