8、黑马程序员-C语言函数
来源:互联网 发布:怎么让淘宝信誉高起来 编辑:程序博客网 时间:2024/06/03 19:14
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一、基本概念
1>什么是函数
任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”。所以,你可以说C语言程序是由函数构成的。
2>函数名
一般来说,我们会将不同的功能交给不同的函数去实现。为了方便调用和区分这些函数,我们需要为每一个函数都起一个唯一的名称,函数的命名必须按照标识符命名规则。利用函数名就可以调用到对应的函数。
二、函数的定义
定义函数的目的就是为了写清楚你这个函数是干啥用的,里面包含了哪些代码。函数的定义格式如下:
返回值类型 函数名(形式参数列表)
{
函数体
}
三、形式参数和实际参数
1>基本概念
形式参数:在定义函数时,函数名后面的小括号()中定义的变量称为形式参数,简称形参
实际参数:在调用函数时传入的值称为实际参数,简称实参
2>调用函数时传递的实参个数 必须和 函数的形参个数必须保持一致
3>当使用基本数据类型作为实参时,实参和形参之间只是值传递,修改形参的值并不影响到实参
4>函数可以没有形参
四、返回值类型
1>如果没有返回值,应该用void表示返回值类型;如果一个函数没有返回值,最后面的return语句可以省略
2>如果一个函数没有明确写出返回值类型,那么代表这个函数的返回值类型是int
3>如果有返回类型,也可以不返回(不推荐这么写)
五、函数定义注意点
1>函数名不能重复
2>每一个函数都应该独立定义,不能嵌套定义
如果有函数的声明,没有函数的定义
1> 编译可以通过,因为编译器只会检测语法合不合理,并不会检测函数有没有定义
2> 链接报错,因为链接的时候会检测函数是否定义
六、函数程序
1、简单的函数调用
#include <stdio.h>int printLine(){ printf("-------------\n"); return 0;}int average(int num1, int num2){ return (num1 + num2)/2;}int main(){ //printLine(); int a = 10; int b = 9; int c = average(a, b); printf("c is %d\n", c); int a1 = 11; int b1 = 20; int d = average(a1, b1); printf("d is %d\n", d); return 0;}
2、递归操作
//递归举例
#include<stdio.h>int fun(int n){ if (n==1) return 1; else return n*fun(n-1);}void main(){ int n; scanf("%d", &n); printf("the n! is %d: \n",fun(n));}
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
0 0
- 8、黑马程序员-C语言函数
- 黑马程序员---C语言函数
- 黑马程序员------C语言-----函数
- 黑马程序员--c语言函数
- 【黑马程序员】C语言函数
- 黑马程序员 - C语言 - 函数
- 黑马程序员—C语言_函数
- 黑马程序员-C语言学习-函数
- 黑马程序员-04.C语言的函数
- 黑马程序员----C语言之函数
- 黑马程序员-C语言函数
- 黑马程序员 -- IOS C语言 scanf函数
- 黑马程序员 -- IOS C语言 函数
- 黑马程序员---【C语言】03函数
- 黑马程序员IOS-C语言-函数
- 黑马程序员--C语言基础-函数
- 黑马程序员——c语言函数
- 黑马程序员-C语言基础六:函数
- ArcEngine-Java中符号选择器(SymbolSelector)的使用
- C++学习笔记(第13章->类继承)
- error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [16]' to 'LPCWSTR'
- 从头认识C—float类型
- NYOJ 325
- 8、黑马程序员-C语言函数
- maven构建android项目问题备忘
- UVA - 10340 - All in All (字符串处理!)
- NYOJ 353
- [leetcode] Rotate List
- NYOJ 488
- ZOJ 3659 题解
- Linux ln命令 - 建立文件/目录链接
- HDU 5000 clone 动态规划