| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 460 人关注过本帖
标题:形参要和实参相对应,fun( tt )和char* fun( char tt[] ),实参是tt,tt是个 ...
只看楼主 加入收藏
yaoyaoyao
Rank: 1
等 级:新手上路
帖 子:10
专家分:4
注 册:2014-2-24
结帖率:0
收藏
已结贴  问题点数:10 回复次数:5 
形参要和实参相对应,fun( tt )和char* fun( char tt[] ),实参是tt,tt是个地址,形参是tt[],请问可以把形参中的[ ]去掉吗?
#include <stdio.h>
#include <string.h>
char* fun( char tt[] )
{
  int i;
  for( i = 0; tt[i]; i++ )
/**********found***********/
    if(( 'a' <= tt[i] )&&( tt[i] <= 'z' ) )
/**********found***********/
      tt[i] -= 32;
  return( tt );
}

main( )
{
  char tt[81];
  printf( "\nPlease enter a string: " );
  gets( tt );
  printf( "\nThe result string is:\n%s", fun( tt ) );
}
搜索更多相关主题的帖子: include 
2014-03-21 19:14
陨灭
Rank: 2
等 级:等待验证会员
帖 子:44
专家分:65
注 册:2013-4-21
收藏
得分:10 
当然不行
形参中间tt[]说明这是个一位数组,要是去了[]那就变成普通char变量了。
当然,你也可以声明为char *tt,这样就可以不要[],不过请注意,这样结果是没问题的,实参和形参都是地址,但是实际上你的实参是数组首地址,是个常量,而形参则是指针,两者严格讲数据类型是不对应的,虽然一般编译可以通过,但是如果编译规则设置非常严格的话,也会有警告的,所以没有必要的话最好前后对应,前面传入的是数组,这形参也是数组是最好的,也方便程序的阅读。

1@w-h.win
2014-03-21 19:31
yaoyaoyao
Rank: 1
等 级:新手上路
帖 子:10
专家分:4
注 册:2014-2-24
收藏
得分:0 
回复 2楼 陨灭
多谢哈O(∩_∩)O~
2014-03-21 20:08
yaoyaoyao
Rank: 1
等 级:新手上路
帖 子:10
专家分:4
注 册:2014-2-24
收藏
得分:0 
还有一个问题:char* fun( char tt[] )
{
  int i;
  for( i = 0; tt[i]; i++ )
/**********found***********/
    if(( 'a' <= tt[i] )&&( tt[i] <= 'z' ) )
/**********found***********/
      tt[i] -= 32;
  return( tt );
}
 return( tt )可以改成 rerurn ( tt[] )吗?
2014-03-21 20:11
陨灭
Rank: 2
等 级:等待验证会员
帖 子:44
专家分:65
注 册:2013-4-21
收藏
得分:0 
回复 4楼 yaoyaoyao
你还是没有理解到数组名的意思,比如ch[5],这里的ch代表的是这个数组首地址,也就是ch[0]的地址,而ch[0]则代表一个数据,而不是地址,至于ch[],它什么意思都没有,只在声明的时候有意义,意思是声明一个数组。所以return后面是不能加上[]的

1@w-h.win
2014-03-21 20:21
yaoyaoyao
Rank: 1
等 级:新手上路
帖 子:10
专家分:4
注 册:2014-2-24
收藏
得分:0 
回复 5楼 陨灭
好的,我好好消化一下,谢谢你哈
2014-03-21 20:32
快速回复:形参要和实参相对应,fun( tt )和char* fun( char tt[] ),实参是tt, ...
数据加载中...
 
   



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

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