您的位置:首页 > 编程语言 > C语言/C++

C语言_函数

2016-03-04 20:11 344 查看
函数

1、函数构成

int main(int argc, const char * argv[]) {

// insert code here...

return 0;

}

返回值类型 函数名(函数参数)

{

函数体语句;

return 返回值;

}

2、函数分类

1)标准函数

由官方或第三方库提供的函数,可以直接调用,无需实现;

2)自定义函数

由程序员自己实现的函数;

3、编写函数的步骤

1)声明函数

写在头文件

2)实现函数

写在原文件

3)调用函数

C阶段,一般在主函数调用

【注意事项】

【1】C语言文件由头文件(.h)和原文件(.c)组成

【2】C语言所有函数的入口函数是主函数,主函数只能有一个

无参无返回值函数:

void 函数名();

编写一个函数,实现打印hello world;

编写一个函数,实现打印一首李白的诗;

无参有返回值函数

返回值类型 函数名();

编写一个函数,实现1+2+。。+100的和,将结果返回给主函数;

有参有返回值函数

返回值类型 函数名(函数参数);

编写函数,要求通过参数传递将两个数从主函数传到子函数,求两个数的最大公约数,用返回值返回结果。

4、变量的作用域和生命周期

作用域:变量在程序中的使用范围

生命周期:变量在时间上的有效范围

5、局部变量和全局变量

1)局部变量(在函数内部定义的变量):

作用域:从定义开始,到函数结束

生命周期:从定义开始生效,到函数调用结束失效

2) 全局变量(定义在所有函数之外的变量)

作用域:从定义开始,到文件结束

声明周期:从定义开始生效,到程序结束失效

3)静态变量

作用域:和局部变量一样

生命周期:和全局变量一样

内存分段:

数据段:全局变量和静态变量存储在数据段

只读数据段:字符串存储在只读数据段

堆区:程序猿手动申请的内存

栈区:局部变量

5、递归

用递归实现求1+2+3+。。。+100的和。

调用自身的函数称为递归函数。

调用自身的行为称为递归。

递归的步骤

1)找到递归的规律

2)找到能使递归结束的条件

3)执行递归

n = 5;

int sum(int n);

sum(5) = sum(4) + 5;

sum(4) = sum(3) + 4;

sum(3) = sum(2) + 3;

sum(2) = sum(1) + 2;

sum(1) = 1;

简单的递归DEMO

#include <stdio.h>

int sum(int n);

void hello(int n);

int main(int argc, const char * argv[]) {

// insert code here...

//printf("%d\n",sum(5));

hello(10);

return 0;

}

int sum(int n)

{

// int ret = 0;

// for (int i = 1; i <= n; i++) {

// ret += i;

// }

//

// return ret;

if (n == 1)

{

return 1;

}

return sum(n-1) + n;

}

void hello(int n)

{

if (n == 0) {

return;

}

printf("hello world\n");

hello(n-1);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: