各位up,求回,为什么输出没结果?

#include<stdio.h>

//输入一个字符串,将字符串赋给一个字符数组,
//然后从第一个字母开始间隔地输出该字符串。
//(用指针完成)

#include<string.h>
int main()
{
char jgsc(char *q);
char ch[1000],*q;
gets(ch);
q=ch;
jgsc(*q);
return 0;
}

char jgsc(char *q)
{

for(;*q!='\0';q++)
{
    printf("%c",*q);
    printf(" ");
    return (*q);
}

}

主函数里jgsc函数的参数应该是q,因为q本身是一个指针,定义的jgsc函数需要传递参数也是一个指针,所以应该相当于jgsc函数的形参char * q=q,作为这个参数传递,其次jgsc函数设置成了有返回值的,导致第访问字符串中第一个字符后就返回到主函数的调用函数的地方继续执行下面代码,所以会只输出一个字符,所以可以把函数设置为无返回值的


#include<string.h>
int main()
{
void jgsc(char *q);
char ch[1000],*q;
gets(ch);
q=ch;
jgsc(q);
return 0;
}

void jgsc(char *q)
{

for(;*q!='\0';q++)

{

printf("%c",*q);

printf(" ");


}

}