CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

函数的形参与实参

楼主xwqiao(晓伟)2003-08-03 10:49:23 在 C/C++ / C语言 提问

在学习函数的时候,形参与实参总是搞不清楚,请哪位高手详细的说明一下,最好结合实例 问题点数:0、回复次数:15Top

1 楼steedhorse(晨星)回复于 2003-08-03 11:21:08 得分 0

形参是函数被声明时所用的参数。  
  实参时函数被调用时真正传进去的参数。Top

2 楼GZCompiler(编译器)回复于 2003-08-03 11:27:15 得分 0

形参   是函数声明时的参数,只说明参数名和类型,不是实际的参数,不能真正使用。  
  实参   运行时传给函数的参数,是实际的变量,形参在这时真正被分配空间,并复制了实参的值。Top

3 楼MaiCle(原来小日本连畜生都不如)回复于 2003-08-03 12:27:12 得分 0

int   Fun(   int   a,   int   b);  
   
  ---     这里的   a,   b   都是形参。  
   
  int   a   =   0;  
  int   b   =   1;  
  Fun(a,   b);  
   
  ---     这里的   a,   b   则是实参。  
   
  明白了吗?Top

4 楼hillyee(山之笛)回复于 2003-08-03 12:34:43 得分 0

一个函数的实参在内存中有自己固定的内存,知道函数执行结束才释放内存。  
  而形参没有固定的内存,只在调用函数的时候有一个虚拟内存,等调用完毕就不再有内存。Top

5 楼snowman_pc(cpp)回复于 2003-08-03 12:35:27 得分 0

实参是调用函数时的参数  
   
  形参是定义函数时的参数Top

6 楼Casear(凯文)回复于 2003-08-03 14:21:06 得分 0

递归是怎么调用的啊??Top

7 楼Casear(凯文)回复于 2003-08-03 14:22:52 得分 0

小弟刚学C,才疏学浅!  
  Top

8 楼bm1408(向va_list学习~不用VC好多年~)回复于 2003-08-03 15:10:18 得分 0

一个函数的实参在内存中有自己固定的内存,知道函数执行结束才释放内存。  
  而形参没有固定的内存,只在调用函数的时候有一个虚拟内存,等调用完毕就不再有内存。  
   
   
  形参   是函数声明时的参数,只说明类型,不是实际的参数,不能真正使用。  
  实参   运行时传给函数的参数,是实际的变量,形参在这时真正被分配空间,并复制了实参的值。  
   
  example:  
  int   aa(int   ,int   )Top

9 楼bahanzo1(绯雨流烟)回复于 2003-08-03 15:15:10 得分 0

形参,顾名思义就是一个形式上的,定义的时候声明的  
  实参,函数调用的时候传进去的参数  
  Top

10 楼wanghuan1983(水木年华)回复于 2003-08-03 16:58:18 得分 0

实参是调用函数时的参数  
  形参是定义函数时的参数  
   
  他们的关系是在函数调用的时候,实参把值传给形参。  
   
  请注意在C语言中,他们的传递方式在值传递。这一点很重要。  
   
  而且在学习函数的过程中,我可以给你一点建议,如果有不妥的地方还请大家指出来;  
   
  设计一个函数最重要的两点就是:  
   
  1.函数的接口  
  2.函数的实现  
   
  函数的接口是很重要的问题,以后你还会学到实现他们的不同方式。比如说实参用数组形参用指针等多种方式  
   
  如果这两个问题解决好了的话,就没有什么问题了。  
   
   
  Top

11 楼TREEDIAO()回复于 2003-08-03 17:23:56 得分 0

修改一下  
   
  int   Fun(   int   a,   int   b)  
  {  
  ---     这里的   a,   b   都是形参。  
   
  int   a   =   0;  
  int   b   =   1;  
  ---这里的   a,   b   还是形参。  
  cout<<a<<b<<endl;  
  }  
   
  void   main()  
  {  
      int   x=3;  
      int   y=5;  
      Fun(x,y);---这里的   x,   y   则是实参。  
      cout<<x<<y<<endl;  
  }  
  你会发现输出的是  
  0   1  
  3   5      
  x和y的值其实没有改变,还是3和5,他们将自己的值复制给形参,形参在函数中把他们改变,但在主程序中没变。Top

12 楼TREEDIAO()回复于 2003-08-03 17:26:39 得分 0

补充一下:以上在c++中是这样,在c中则不同。Top

13 楼jumpcolor(跳动de色彩)回复于 2003-08-03 18:05:03 得分 0

上面解释的已经很全面了!  
  我也有个取巧的辨识方法,在main中的是实参,在函数中等待接收实参的是型参!  
  象    
  touper(char   *string)//string   -->>   型参  
  {...   ...}  
  main  
  {  
  char   str[]="abc";  
  touper(str);str   -->>   实参  
  }  
  高手们,我这么说行么?Top

14 楼steedhorse(晨星)回复于 2003-08-03 22:16:31 得分 0

楼上的好像不太行吧?函数调用不一定值发生在main中呀,任何函数都可能调用别的函数的。  
  如;  
   
  void   PrintInt(int   i);//i是形参。  
  {  
          printf("%d\n"   ,   i);//i是实参。  
  }Top

15 楼jumpcolor(跳动de色彩)回复于 2003-08-04 21:08:38 得分 0

hehe,受教!Top

相关问题

  • 怎实现函数的可选参数?
  • Fileexists函数的讨论!!!多谢各位参与!!!
  • RGB(R,G,B)函数原理深层次讨论,欢迎参与.
  • RGB(R,G,B)函数原理深层次讨论,欢迎参与.
  • biosdisk()函数参数
  • 函数和参数
  • c# 可以实现 把某个函数作为 另一个函数的参数进行调用吗?
  • 定义一个函数模板,函数类型确定,参数类型不确定,如何实现
  • 如何实现函数参数的缺省,
  • c中函数的不定参数是怎么实现的?

关键词

  • 函数
  • 内存
  • 调用
  • 参数
  • 值
  • 传给
  • 定义
  • 实际
  • 时候
  • fun

得分解答快速导航

  • 帖主:xwqiao

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo