Chinaunix首页 | 论坛 | 博客
  • 博客访问: 119659
  • 博文数量: 26
  • 博客积分: 1441
  • 博客等级: 上尉
  • 技术积分: 265
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-27 20:35
文章存档

2011年(2)

2010年(5)

2009年(19)

我的朋友

分类: C/C++

2009-10-16 19:43:45

/*
   本练习目的是为了验证函数调用过程中,函数对传给它的参数是否
   改变。C语言中,参数分为引用参数和非引用参数,非引用参数包括
   普通参数,指针参数,数组参数。当形参为非引用参数时,虚实结
   合过程为:计算出实参表达式的值,接着给对应的形参分配该形参
   类型的空间,然后把实参的值存到形参刚刚分配的空间中,该值作为
   形参的初始值。当参数引用形参时,形参名就是实参的一个别名,他们
   享用同一内存空间。有时即为了用实参的存储空间又不想改变实参的值,
   形参应该申明为常量形参(在形参前家const 关键字)。  (看的是c++
   的书,不知到gcc不支持引用,改g++后编译通过,另外函数中是
   不允许在定义函数的,只能是外部定义内部调用 )
 */
#include

/*设计一个函数,对传递来的数据进行修改*/
int test (int a)
{    
    a +=1;
    printf("test函数内部的y的值%d\n",a);
    return 0;
}
int test1(int &a)
{
    a++;
    printf("test1:a=%d",a);
    return 1;
}
            
//主函数测试函数参数传递过程中引用和非引用对实参的改变。
int main (void)
{
    int y=2;

   
    //非引用参数(普通参数)传递
    test (y);
    printf("主函数中y的值%d",y);
      
    //引用参数传递
    test1(y);
    printf("主函数中y的值%d",y);
    }

运行结果:
test函数内部y的值3
主函数中y的值2test1:a=3主函数中y的值3
阅读(1399) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~