c中函数的问题,急啊!!!谢了,各为大哥指点!!!

CnzG918 2004-05-08 12:57:54
请问3个问题:::比下面这个程序中,(1)义函数时chen是int型,但在函数调用时,x=chen(m,p),而x是int型的,是不是说chen()这个函数也是int型的了,调用chen()时用不用说明函数类型,和实参类型呢?
(2)用时的函数类型和定义时的函数类型是必需一样吗?
(3)用函数时,函数前面的类型,和实参的类型是必需一样吗???函数定义时,函数前面的类型,和形参是必需一样吗?
请个位高手大哥细讲一下,谢了!!!我看书看不明白啊!!!!!!!!!
int chen(int a,int b)
{
int t;
t=a+b;
return t;
}
main()
{
int m=3,p=5,x;
x=chen(m,p);
printf("%d",x);
}
...全文
5 9 点赞 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zhouqingyuan 2004-05-08
函数返回类型和实参形参的类型没有什么关系的。函数有时候返回void类型,如果返回一个确定的类型就可以赋值给一个变量,而类型要一样,如果不一样,看能否从函数返回类型类型转换到赋值得这个变量得类型,有时候得自己进行显式转换,如果无法转换过来,则报错。
实参和形参得与函数定义时候的参数一样,如果不一样,看是否可以进行隐形类型转换,如果不能转换,则会报错。
  • 打赏
  • 举报
回复
idseaboy 2004-05-08
楼主,好好静下心来看看书吧,觉得你的思维有些乱呢。
还是书上讲得好。
  • 打赏
  • 举报
回复
fire314159 2004-05-08
函数名chen前的int是指这个调用函数返回的是int型的数据。chen是一个函数,无所谓什么类型,如果你不想返回任何值,可以用void代替chen前的int,这样就说明只执行调用函数,不返回值。
例如,x=chen(a,b); (如果前面调用函数时已说明chen前为int ,则返回一个int值赋予x.
   chen(a,b); (如果前面调用函数时已说明chen前为void,则不返回值)

所以调用函数是什么类型的说法是错的,只能说它返回什么类型(当然,调用函数里面的return值一定要对应)

至于形参与实参,他们的类型是什么就设什么。
说白了,没有return值的,调用函数为void,有return值的,调用函数返回值与之对应。
形参与实参只跟他们值的类型对应。

还望方家斧正:)
  • 打赏
  • 举报
回复
whalefish2001 2004-05-08
楼主是刚接触C吧,

你还没有明白呢。
建议还是仔细看看书。

楼上说的很对,
楼主的思维很乱,不知道

int a(int b,int c=5)
中的各个int 还是什么意思呢。
如果是
void a(int b,char c,int d=9) 呢?

恐怕就.....
所以,建议楼主好好把书看看。
  • 打赏
  • 举报
回复
cancer001 2004-05-08
没有看明白楼主什么意思!
  • 打赏
  • 举报
回复
tcysky 2004-05-08
1.函数chen是int型,该说它的返回类型是int。
2.用时的函数类型和定义时的函数类型是可以不一样。有必要时可强制转换类型。
3.实参和形参可以跟函数类型不一样。
  • 打赏
  • 举报
回复
loki51 2004-05-08
函数chen是int型,该说它的返回类型是int. x=chen(m,p)就是把chen(m,p)的返回值赋值给x.个人理解是这样的:形参是指你定义函数的int a和int b实参是你调用函数时的实际参数比如x=chen(m,p)中的m和p.形参和实参实一一对应的.
  • 打赏
  • 举报
回复
seabreeze9802 2004-05-08
感觉楼主的思维很混乱啊,把函数形参、实参还有函数的返回值之间的关系搞得一塌糊涂。

静下心来好好看书吧,很多书都讲得非常清楚。
  • 打赏
  • 举报
回复
chenpeide 2004-05-08
被你说的糊涂了,呵呵
函数chen是int型
是说它返回值是int
所以它可以赋给int 的变量
一般不说明默认是返回int

一般用时和定义时是一样的
可能有些有强制转换类型吧

实参和形参可以跟函数类型不一样

  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-05-08 12:57
社区公告
暂无公告