c语言程序改错题

 我来答
xzenith
2015-02-04 · 超过23用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:34.6万
展开全部
#include "stdafx.h"
#include <stdio.h>
#include <string.h>

void reverseString(char *str){
    if (*str){
        reverseString(str+1);
        printf("%c", *str);
    }
}

int main(){
    
    char str[] = "test";
    reverseString(str);
    return 0;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mirainoe
2015-02-04 · TA获得超过315个赞
知道小有建树答主
回答量:513
采纳率:0%
帮助的人:265万
展开全部
fun(char a);
这里应该传入指针。
更多追问追答
追问
为什么 能解析一下吗
追答
#include<stdio.h>
void fun(char a) //2、那么,这里就有问题了,这里是char不是char*
                 //编译器会提示找不到函数。
{
   if(*a)      //这里循环检测a的值里的值。。==好绕口
               //检测到\0,就是标志着字符串结尾的符号。
               //就不会再继续调用fun来递归     
    fun(a+1);
   printf("%c",*a);//会打印a,这样第一次打印的*a就是传进来的数组的最后一个元素了
}
int main()
{
    char s[10] = {"abcd"};
    printf....
    .........
    fun(s);  //1、对函数传递一个数组就相当于传递一个指向数组首元素的指针
            // 这里传入s就相当于传入一个指向s[0]的指针
           // 数组的地址是连续的,可以通过递加这个指针得到s[1],s[2]..s[n]的值
}
//还有错误就是你的fun貌似没写返回类型,main函数也没写。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式