黑马程序员—C语言_函数

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------
函数

任何一个C语言程序都是由一个或多个程序段构成的,每个程序段都有自己的功能,这些程序段成为函数。所以C语言程序是由函数组成的。当我们需要为程序添加一个功能的时候,可以定义一个函数。

函数定义
int sub(int num1,int num2)
{
    return num1+num2;
}
int是函数的返回值类型
sub是函数名,函数名要和函数实现的功能有关,方便函数的调用。
括号内是函数的参数列表,函数内不能定义和参数一样的变量。

函数调用
函数参数分为形式参数和实际参数
形式参数:定义函数时函数名后括号内的参数,可以没有形参,也可以有多个形参
实际参数:调用函数时传入函数的具体数据,实参的个数必须和形参个数一样

当基本数据类型作为形参时,只是进行值传递,修改函数内部形参的值,不会影响外面实参的值。如下面一段代码:
#include <stdio.h>
int sub(int a,int b)
{
    a = 10;
    b = 10;
    return a + b;
}
int main()
{
    int a = 5;
    int b = 5;
    int c = sub(a,b);
    printf("a=%d,b=%d c=%d\n",a,b,c);
    return 0;
}
在主函数main内定义3个变量a,b,c,变量c调用函数sub并把a,b的值作为参数传递进去, 在函数sub内对形参a,b重新赋值,然后返回a+b的值。输出结果为:
a=5,b=5,c=20
a和b的值并没有因为函数sub的调用而改变。函数内return用来结束函数,并返回一个值给函数的调用者。

递归
递归使用的条件
1> 函数调用自己本事身

2> 函数必须有返回值
递归的使用,如下:计算n!的阶乘 
long value (int n)
{
    long sum;
    if (n >0){
        sum = n* value(n - 1);
    }
    else{
        sum = 1;
    }
    return sum;
}
 
函数注意点
void代表函数没有返回值
没有明确声明函数的返回值类型时,默认的返回值类型就是int类型
函数有返回值时,也可以不返回任何值
默认情况下,函数名不能一样
函数不能嵌套定义 
函数定义在main函数后面时,需要在函数调用之前声明函数
函数的声明方式 int sub(int a,int b);

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值