黑马程序员---C语言基础---函数、参数、返回值
2015-07-03 22:55
260 查看
-------
android培训、java培训、IOS培训期待与您交流! ----------
1、函数的概述:
C语言函数是由函数组成的。虽然在前面各章的程序中大都只有一个主函数main(),但实用程序往往由多个函数组成。函数是C源程序的基本模块,通过对函数模块的调用来实现特别的功能。
C语言不光提供了极为丰富的库函数,还允许用户建立自己定义的函数。用户可以把自己的算法编成一个个相对独立的函数模块,然后用调用的方法来使用函数。可以说C的程序的全部工作都是有各式各样的函数完成的,所以也把C语言称之为函数式语言。
2、函数的分类:
在C语言中,可以从不同的角度对函数进行分类。
(1)从函数定义的角度看,函数可以分为库函数和用户定义的函数两种。
库函数:由C系统提供,用户无需定义,也不必在程序中做类型说明,只需要在程序先包含有该程序的原型头文件即可在程序中直接调用。我们之前用到的printf、scanf、getchar、putchar、gets、puts、stract等函数均属于此类。
用户定义函数:由用户按需要编写的函数。对于用户定义函数,不仅要在程序中定义函数本身,而且在主调函数模块中还必须对该被调函数进行类型说明,然后才能使用。
(2)C语言的函数兼有其他语言中的函数和过程两种功能,从这个角度看,又可以把函数分为又返回值函数和无返回值函数两种。
有返回值函数:此类函数被调用执行完之后向调用者返回一个执行结果,成为函数返回值。如数学函数即属于此类函数。有用户定义的这种要返回函数值的函数,必须在函数定义和函数说明中明确返回值的类型。
无返回值函数:此类函数用于完成某项特定的处理任务,执行完成后不向调用者返回函数值。这类函数类似于其他语言的过程。由于函数无需返回值,用户在定义此类函数时可指定他的返回值为空类型,即“void”。
(3)从主调函数和被调函数之间的数据传送的角度看又可以分为无参函数和有参函数。
无参函数:函数定义、函数说明及函数调用中均不带参数。主调函数和被调函数之间不进行参数传送。此类函数通常用来完成一组指定的功能,可以反回或不返回函数值。
有参函数:也称为带参函数。在函数定义以函数说明时都有参数,称为形式参数(简称形参).在函数调用时也必须给出参数,称为实际参数,简称实参。进行函数调用时,主调函数将把实参的值传给形参,供被调函数使用。
3、自定义函数的书写格式:
函数从定义到使用分三步:(1)声明。(2)定义函数。(3)调用函数。
基本格式:
返回值类型 函数名称(函数参数){
函数体;
}
4、无参无返回值函数:
一般形式:
void 函数名(){
声明部分;//定义局部变量
语句;
}
一般形式:
返回值类型 函数名(){
声明部分;//定义局部变量
语句;
return 返回值类型变量或常量;//返回给主调函数
}
一般形式:
void 函数名(形式参数表列){
声明部分;
语句;
}
形式参数表列的格式:类型 变量名,类型 变量名,…………
一般形式:
返回值类型 函数名(形式参数列表){
声明部分
语句;
return 返回值类型变量或者常量;
}
有参函数比无参函数多了一个内容,即形式参数表列。在形参表中给出的参数称为形式参数,它们可以是各种类型的变量,各参数之间用逗号间隔,在进行函数调用时,主调函数将赋予这些形式参数实际的值。形参既然是变量,必须在形参中给出行参的类型说明。
暖心Tip:定义函数时,注意函数名不能重名。
android培训、java培训、IOS培训期待与您交流! ----------
1、函数的概述:
C语言函数是由函数组成的。虽然在前面各章的程序中大都只有一个主函数main(),但实用程序往往由多个函数组成。函数是C源程序的基本模块,通过对函数模块的调用来实现特别的功能。
C语言不光提供了极为丰富的库函数,还允许用户建立自己定义的函数。用户可以把自己的算法编成一个个相对独立的函数模块,然后用调用的方法来使用函数。可以说C的程序的全部工作都是有各式各样的函数完成的,所以也把C语言称之为函数式语言。
2、函数的分类:
在C语言中,可以从不同的角度对函数进行分类。
(1)从函数定义的角度看,函数可以分为库函数和用户定义的函数两种。
库函数:由C系统提供,用户无需定义,也不必在程序中做类型说明,只需要在程序先包含有该程序的原型头文件即可在程序中直接调用。我们之前用到的printf、scanf、getchar、putchar、gets、puts、stract等函数均属于此类。
用户定义函数:由用户按需要编写的函数。对于用户定义函数,不仅要在程序中定义函数本身,而且在主调函数模块中还必须对该被调函数进行类型说明,然后才能使用。
(2)C语言的函数兼有其他语言中的函数和过程两种功能,从这个角度看,又可以把函数分为又返回值函数和无返回值函数两种。
有返回值函数:此类函数被调用执行完之后向调用者返回一个执行结果,成为函数返回值。如数学函数即属于此类函数。有用户定义的这种要返回函数值的函数,必须在函数定义和函数说明中明确返回值的类型。
无返回值函数:此类函数用于完成某项特定的处理任务,执行完成后不向调用者返回函数值。这类函数类似于其他语言的过程。由于函数无需返回值,用户在定义此类函数时可指定他的返回值为空类型,即“void”。
(3)从主调函数和被调函数之间的数据传送的角度看又可以分为无参函数和有参函数。
无参函数:函数定义、函数说明及函数调用中均不带参数。主调函数和被调函数之间不进行参数传送。此类函数通常用来完成一组指定的功能,可以反回或不返回函数值。
有参函数:也称为带参函数。在函数定义以函数说明时都有参数,称为形式参数(简称形参).在函数调用时也必须给出参数,称为实际参数,简称实参。进行函数调用时,主调函数将把实参的值传给形参,供被调函数使用。
3、自定义函数的书写格式:
函数从定义到使用分三步:(1)声明。(2)定义函数。(3)调用函数。
基本格式:
返回值类型 函数名称(函数参数){
函数体;
}
4、无参无返回值函数:
一般形式:
void 函数名(){
声明部分;//定义局部变量
语句;
}
<span style="font-size:14px;">//定义一个无参无返回值的函数 void printMyName(){ printf("我的名字,就是黑马~~\n"); }</span>5、无参有返回值函数:
一般形式:
返回值类型 函数名(){
声明部分;//定义局部变量
语句;
return 返回值类型变量或常量;//返回给主调函数
}
<span style="font-size:14px;">//从键盘上输入两个数,计算他们的和 #include <stdio.h> int sum(){ //1、定义变量 int num1,num2; //2、提示用户输入 printf("请输入两个数,用\",\"分隔\n"); //3、接收用户输入的两个数 scanf("%d,%d",&num1,&num2); //4、进行计算 result = num1+num2; //5、返回计算结果 return result; } void main(){ int s = sum(); printf("s = %d",s); return 0; }</span>6、有参无返回值函数:
一般形式:
void 函数名(形式参数表列){
声明部分;
语句;
}
形式参数表列的格式:类型 变量名,类型 变量名,…………
<span style="font-size:14px;">//打印n条线 #include <stdio.h> void print_Ln(int n){ //1、n的作用域:从定义的位置开始,到函数的结束 for(int i=0;i<n;i++){printf("-----------------\n");} } void main(){ print_Ln(5); return 0; }</span>7、有参有返回值的函数:
一般形式:
返回值类型 函数名(形式参数列表){
声明部分
语句;
return 返回值类型变量或者常量;
}
有参函数比无参函数多了一个内容,即形式参数表列。在形参表中给出的参数称为形式参数,它们可以是各种类型的变量,各参数之间用逗号间隔,在进行函数调用时,主调函数将赋予这些形式参数实际的值。形参既然是变量,必须在形参中给出行参的类型说明。
暖心Tip:定义函数时,注意函数名不能重名。
#include <stdio.h> //定义了两个形参 int max(int x,int y){ //用if判断 if(x>y){ return x; }else{ return y; } } int main(){ int m = max(438,38); printf("最大值为:%d",m); return 0; }
相关文章推荐
- C++实现栈的链接存储
- C++实现顺序栈之两栈共享存储空间
- 多线程(C++)临界区Critical Sections问题
- C++中构造函数初始化列表为什么会比构造函数中赋值要高效
- 约瑟夫问题:有n个人围成一圈,顺序报数(1~3),报到3退出
- C++ 不输入回车就不结束输入的实现方法
- c/c++内存机制
- C语言可变参数
- C++读书笔记:构造函数与析构函数(来自谭浩强的C++程序设计)
- 自学笔记-C语言复习2015年7月3日
- 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数
- c++ primer读书笔记-第七章 函数
- C++重载覆盖和隐藏,虚函数与纯虚函数
- C语言qsort C++的sort
- c语言常用函数实现
- 《C++ Primer Plus》学习笔记6
- stl之set集合容器应用基础
- LeetCode-Fraction to Recurring Decimal-解题报告
- 如何从Excel 中调用C/C++写的动态链接库函数
- C++单例模式详解