雪*C语言核心知识总结六
2015-10-23 17:06
225 查看
一、函数
1.从定义上来说,函数可以分为库函数(系统定义给定义好的,我们可以直接拿来使用的,不用担心怎么去实现)和用户自定义函数(编程人员自己定义的函数)。
2.从有无返回值和参数上来划分,可以分为四种情况。
(1)有参数有返回值
int add(int a,int b){
return a;
}
(2)无参数无返回值
void sub(void){
}
(3)有参数无返回值
void mult(int b){
}
(4)无参数有返回值
char div(void){
char c = 'q';
return c;
}
3.函数定义
返回值类型 函数名{
语句/代码片段;
return 返回值;
}
返回值类型可以是基本数据类型(int char long short float double),还可以是void空类型;
注意:当函数的返回值类型是void类型时,函数体内不需要return返回值;当函数的返回值类型不是void时,函数体的返回值类型必须要和定义函数时的类型保持一致。
当程序遇到return时就会结束,跳出循环,所以不要在return后面写任何代码。
4.形式参数列表
(1)形式参数:需要参与函数执行的一个变量
(2)形参定义:基本数据类型 参数名字
(3)多个参数之间用“,”隔开
(4)形参的定义没有个数限制,可以定义多个,他与返回值的类型也毫无关系。
5.函数调用
方法名( );
6.形参:出现在函数定义中,以变量的名字来表示实际函数调用过程中需要提供的值;
实参:出现在函数过程中的表达式;
注意:在函数调用过程中,形参会拷贝实参的值,传递参数是给函数传递信息的一种方式。
7.关于函数的返回值
(1)一个函数体只有一个返回值;
(2)函数的返回值被称为函数的值,只能通过return语句来返回给主调函数;
(3)函数即使没有返回值我们也可以通过return语句来结束函数的执行;
(4)return后面的语句永远不会被执行;
8.严格的函数通常包括三部分
(1)函数声明 返回值类型 函数名();
(2)函数定义
(3)函数调用
函数定义出现在主调函数之前,可以省略函数声明;
函数定义出现在主调函数之后,需要在主调函数之前写函数声明;
9.函数的嵌套调用
函数定义不可以嵌套,但函数可以嵌套调用;
10.函数的递归调用
C语言中允许函数再次调用函数本身,这种调用方式称为递归调用,这个函数称为递归函数;
11.变量作用域:即变量的有效作用范围,全局变量和局部变量可以重名,但是在局部变量(就是在变量定义以下到程序结束为止)作用域内,只能访问局部变量;
练习 1.编写函数,返回三个整数中的中间值;
int center(int a,int b, int c){
int secMax = 0;
return secMax = a > b ? (b > c ? b : a) : (a > c ? a : (b > c) ? c : b);
}
调用方式:
(1) printf("secMax = %d\n",center(3,9,6));
(2) int a,b2,c;
printf("请输入三个数\n");
scanf("%d %d %d",&a,&b2,&c);
int secMax = center(a,b2,c);
printf("secMax = %d\n",secMax);
练习 2. 求两个数的最大值,三个数的最大值,四个是的最大值,五个数的最大值
核心思想:先定义一个求两个数最大值的函数,然后求三个,四个,五个的时候分别嵌套调用即可。Max为之前定义的求两个数最大值的方法名;
printf("max11 = %d\n",Max(34, 25));
printf("max12 = %d\n",Max(Max(56, 78), 90));
printf("max13 = %d\n",Max(67,Max(45, Max(34, 23))));
printf("max14 = %d\n",Max(88, Max(99, Max(12, Max(44, 97)))));
1.从定义上来说,函数可以分为库函数(系统定义给定义好的,我们可以直接拿来使用的,不用担心怎么去实现)和用户自定义函数(编程人员自己定义的函数)。
2.从有无返回值和参数上来划分,可以分为四种情况。
(1)有参数有返回值
int add(int a,int b){
return a;
}
(2)无参数无返回值
void sub(void){
}
(3)有参数无返回值
void mult(int b){
}
(4)无参数有返回值
char div(void){
char c = 'q';
return c;
}
3.函数定义
返回值类型 函数名{
语句/代码片段;
return 返回值;
}
返回值类型可以是基本数据类型(int char long short float double),还可以是void空类型;
注意:当函数的返回值类型是void类型时,函数体内不需要return返回值;当函数的返回值类型不是void时,函数体的返回值类型必须要和定义函数时的类型保持一致。
当程序遇到return时就会结束,跳出循环,所以不要在return后面写任何代码。
4.形式参数列表
(1)形式参数:需要参与函数执行的一个变量
(2)形参定义:基本数据类型 参数名字
(3)多个参数之间用“,”隔开
(4)形参的定义没有个数限制,可以定义多个,他与返回值的类型也毫无关系。
5.函数调用
方法名( );
6.形参:出现在函数定义中,以变量的名字来表示实际函数调用过程中需要提供的值;
实参:出现在函数过程中的表达式;
注意:在函数调用过程中,形参会拷贝实参的值,传递参数是给函数传递信息的一种方式。
7.关于函数的返回值
(1)一个函数体只有一个返回值;
(2)函数的返回值被称为函数的值,只能通过return语句来返回给主调函数;
(3)函数即使没有返回值我们也可以通过return语句来结束函数的执行;
(4)return后面的语句永远不会被执行;
8.严格的函数通常包括三部分
(1)函数声明 返回值类型 函数名();
(2)函数定义
(3)函数调用
函数定义出现在主调函数之前,可以省略函数声明;
函数定义出现在主调函数之后,需要在主调函数之前写函数声明;
9.函数的嵌套调用
函数定义不可以嵌套,但函数可以嵌套调用;
10.函数的递归调用
C语言中允许函数再次调用函数本身,这种调用方式称为递归调用,这个函数称为递归函数;
11.变量作用域:即变量的有效作用范围,全局变量和局部变量可以重名,但是在局部变量(就是在变量定义以下到程序结束为止)作用域内,只能访问局部变量;
练习 1.编写函数,返回三个整数中的中间值;
int center(int a,int b, int c){
int secMax = 0;
return secMax = a > b ? (b > c ? b : a) : (a > c ? a : (b > c) ? c : b);
}
调用方式:
(1) printf("secMax = %d\n",center(3,9,6));
(2) int a,b2,c;
printf("请输入三个数\n");
scanf("%d %d %d",&a,&b2,&c);
int secMax = center(a,b2,c);
printf("secMax = %d\n",secMax);
练习 2. 求两个数的最大值,三个数的最大值,四个是的最大值,五个数的最大值
核心思想:先定义一个求两个数最大值的函数,然后求三个,四个,五个的时候分别嵌套调用即可。Max为之前定义的求两个数最大值的方法名;
printf("max11 = %d\n",Max(34, 25));
printf("max12 = %d\n",Max(Max(56, 78), 90));
printf("max13 = %d\n",Max(67,Max(45, Max(34, 23))));
printf("max14 = %d\n",Max(88, Max(99, Max(12, Max(44, 97)))));
相关文章推荐
- 【C/C++】类的作用域
- C语言中“指针”作为“函数参数”时的注意事项
- 转载一份C++线程池的代码,非常实用
- C语言宏定义##连接符和#符的使用
- [C++] Deep copy ,Shallow copy, copy constructor,"="
- c++混合
- C++中的虚函数的底层机制
- C语言中变量名的命名规则
- eclipse mars对C++11标准的支持
- c++学习之----MFC的执行顺序
- C++类的友元函数
- Chrome Native Messaging技术示例
- c语言学习之基础知识点介绍(六):if和switch结构
- VC++ 动态生成 成组的 RadioButton 按钮组
- c c++ 函数入口和出口的hook(gcc 编译选项),然后打印出函数调用关系的方法
- Notepad++配置C/C++,Python开发环境 4000
- VC++ CButton::SetCheck 的使用方法
- C++的一些干货,有各种c++的资料
- c++中虚函数是怎么实现的
- 第五届蓝桥杯本科c/c++B组预赛-小朋友排队解法(归并排序求逆序数)