C高级之函数(一)

1. 函数定义的几个关键要素详解:

1)函数名:函数的标识。

2)类型名:函数的类型,即函数的返回值类型。

3)参数列表:指函数需要的用于计算的数据。

4)函数返回值:返回值必须与函数函数类型匹配。对于void型函数,可以没有返回值或直接写return;

5)函数体:函数的执行代码逻辑。

 

2. 函数传参

函数之间的参数传递方式有:复制传递方式,地址传递方式

1)复制传递方式

把实参的值赋给被调函数中的形参。在被调函数中改变形参的值不影响实参的值,因为这两者属于不同的变量。

利用复制传递方式的函数这里不必举例。下面请看这个函数:

voidswap(int x,int y)

{

       int temp;

       temp = x;

       x = y;

       y = temp;

       return;

}

int main()

{

       int a=5,b=3;

       swap(a,b);

       printf("a是%d\nb是%d\n",a,b);

       return 0;

}

输出结果:a是5,b是3

因为swap函数中的形参只是复制实参中的值,这两者属于不同的变量,所以这里的swap函数完成不了两个变量交换值的功能。

2)地址传递方式

一开始还是把实参的值赋给被调函数中的形参,只不过这不是普通的参数,而是变量的地址,在C语言中对地址中的值进行操作就是对变量本身操作。如果我们用值传递改写swap函数,效果如下:

voidswap(int *x,int *y)

{

       int temp;

       temp = *x;

       *x = *y;

       *y = temp;

       return;

}

int main()

{

       int a=5,b=3;

       swap(&a,&b);

       printf("a是%d\nb是%d\n",a,b);

       return 0;

}

输出结果:a是3,b是5

main函数中的swap函数传递的实参是&a,&b即a的地址,b的地址,swap中的形参x, y就分别拿到了a的地址,b的地址,所以swap函数对*x ,*y操作,就是直接对main函数中的a变量和b变量操作。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值