C语言问题 这个程序是将大写字母转换成小写字母?
这个程序是将大写字母转换成小写字母,为什么函数部分最后要return*c它不是直接指向主函数的s了吗?还有,函数中的c指针会自动后移吗?为什么不c++...
这个程序是将大写字母转换成小写字母,为什么函数部分最后要return*c它不是直接指向主函数的s了吗?还有,函数中的c指针会自动后移吗?为什么不c++
展开
2个回答
展开全部
return *c 的目的是 用 *p = fun(p); 方式调用时不出错。
当然 不返回,改为:
void fun(char *c){
if (*c>='A' && *c<='Z') *c= *c+32;
}
调用 while(*p){fun(p);putchar(*p);p++;} 更简洁。
函数 char fun(char *c){ } 的 c 指针 没有变化,因函数内 没修改 c 的 指向。另,可以把*c 理解成 一个字符, 函数修改了一个字符的 值。
程序中 p++; 推动指针向后移动。不是靠 c。
当然 不返回,改为:
void fun(char *c){
if (*c>='A' && *c<='Z') *c= *c+32;
}
调用 while(*p){fun(p);putchar(*p);p++;} 更简洁。
函数 char fun(char *c){ } 的 c 指针 没有变化,因函数内 没修改 c 的 指向。另,可以把*c 理解成 一个字符, 函数修改了一个字符的 值。
程序中 p++; 推动指针向后移动。不是靠 c。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询