| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 344 人关注过本帖
标题:函数问题
只看楼主 加入收藏
超级大菜鸟
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2009-10-2
结帖率:50%
收藏
已结贴  问题点数:16 回复次数:3 
函数问题
本人不才,C语言函数没学好.在这问一道题目,顺便问一下解题思路或者方法(请务必告诉我函数的解题思路         谢谢!!!)

输入ABCDE
f(char s[])
{ int n=0;
  while (*(s+n)!='\') n++;
  return(n);
}
main()
{ char a[10],*p=a+1;
  scanf("%s",a);
  printf("%d\n",f(p+1));
}
输出结果是多少

想明白了 P+1=a+1+1='A'+1+1=3  但是前面的函数f起的什么作用?


[ 本帖最后由 超级大菜鸟 于 2009-10-4 15:01 编辑 ]
搜索更多相关主题的帖子: 函数 
2009-10-04 14:36
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:8 
想明白了 P+1=a+1+1='A'+1+1=3
结果是为三,但不是这么出来的。
2009-10-04 15:48
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:0 
函数f()是main函数的一个子函数。你的printf的结果是f()的返回值。因为*p=a+1,所以p+1指向a+1+1=a+2,那么f(p+1)就是将形参中的s[]换为实参a[3]={'B','C',‘D'}。相当于带入f()函数的数组时原字符数组从第三个元素算起而形成的新字符串。f()的作用实际上就是计算新字符串的长度。显然,新字符串的长度为三,所以返回值n=3;因为你在main函数里要调用f()函数,所以你要对f()函数加以说明了,这就是函数f()存在的理由。
2009-10-04 15:56
flyingcloude
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:6
帖 子:598
专家分:1512
注 册:2008-1-13
收藏
得分:8 
int f(char s[])
{ int n=0;
  while (*(s+n)!='\0') n++;
  return(n);
}

这个函数的作用基本同3楼

你能学会你想学会的任何东西,这不是你能不能学会的问题,而是你想不想学的问题
2009-10-04 18:13
快速回复:函数问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014356 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved