第5章 函数和编详预处理
第5章 函数和编译预处理
函数的定义和调用 函数完成某一特殊任务的程序块,分库函 数和用户函数。 C++函数作用:1、大任务化小时,表示小任务; 2、定义方法。 文件编译的独立单位。 图数1 文件1 文件圆数2 程序文件2 图数 文件n 2021/224
2021/2/24 2 函数的定义和调用 函数 完成某一特殊任务的程序块,分库函 数和用户函数。 C++函数作用:1、大任务化小时,表示小任务; 2、定义方法。 文件 编译的独立单位。 n 2 1 m 2 1 文 件 ... 文 件 文 件 程 序 函 数 ... 函 数 函 数 文 件
库函数 库函数由编译系统自定义,可直接调用 它们的声明和定义包含在相应的头文件中, 应用程序只要包含相应的头文件就可以调用 函数。 2021/224
2021/2/24 3 库函数 由编译系统自定义,可直接调用, 它们的声明和定义包含在相应的头文件中, 应用程序只要包含相应的头文件就可以调用 函数。 库函数
常用的函数库有: math. h数学运算,如sqrt(x),fabs(x) stdlib.h类型转换、存储分配等 string. h字符串处理 iostream. h键盘和文件输入输出的成员函数 roman.h输出格式等 fstream. h定义了C++的文件流体系 例1:char* p Char; p Char=new char, ∥调用库函数 char *string= new charl25;调用库函数 / delete p; ∥调用库函数 delete i string;/调用库函数 2021/224
2021/2/24 4 常用的函数库有: math.h 数学运算,如sqrt(x),fabs(x). stdlib.h 类型转换、存储分配等 string.h 字符串处理 iostream.h 键盘和文件输入/输出的成员函数 iomanip.h 输出格式等 fstream.h 定义了C++的文件流体系 例1:char *pChar; pChar=new char; //调用库函数 char *string=new char[25]; //调用库函数 //… delete pChar; //调用库函数 delete [ ] string; //调用库函数
例2:库函数的调用。 #include #include void main( float a=900.0 float root=sqrt(a);∥调用库函数 cout <<The square root of <<a <<is: < root < endl 执行结果: The square root of900i:30 2021/224 5
2021/2/24 5 例2: 库函数的调用。 #include #include void main( ) { float a=900.0; float root = sqrt(a); //调用库函数 cout << " The square root of " <<a << " is: " << root << endl; } 执行结果:The square root of 900 is: 30
自定义函数 函数作用过程:1函数声明(函数原型说明) 2函数定义 3函数调用 函数的声明:类型名函数名(参数表); 其中:类型名: 函数返回的类型 参数表:函数的形式参数表, 具体为: typel p1,…, typen p2,且p1、 p2 pn可省略。 2021/224 6
2021/2/24 6 自定义函数 函数的声明: 类型名 函数名(参数表); 其中:类型名: 函数返回的类型。 参数表: 函数的形式参数表, 具体为:type1 p1,…,typen p2,且p1、 p2、…、pn可省略。 函数作用过程:1.函数声明(函数原型说明) 2.函数定义 3.函数调用
注意:1函数的声明必须在函数的调用之前。其目 的为告诉编译程序,该函数的返回值类型 参数个数及各参数的类型,以便调用时作有 效性检查 2当函数的定义在前,函数的调用在后时不 需要声明。 函数声明如: int max(inta,intb) 或 int max(int, int); 2021/224
2021/2/24 7 注意:1.函数的声明必须在函数的调用之前。其目 的为告诉编译程序,该函数的返回值类型、 参数个数及各参数的类型,以便调用时作有 效性检查。 2.当函数的定义在前,函数的调用在后时不 需要声明。 函数声明如: int max(int a, int b); 或 int max(int, int);
求两个整数中的大数,若如531,则出现 错误。 531 应改为: 533 2021/224 8
2021/2/24 8 求两个整数中的大数,若如531,则出现 错误。 531 应改为: 533
函数的定义: 类型名函数名(参数表){ 函数体 1类型名给出函数返回值的类型; 2参数表又称形式参数表,含有每个形参定义, 每个形参定义包含类型和参数名 3函数体是要完成的具体操作 2021/224 9
2021/2/24 9 函数的定义: 类型名 函数名(参数表) { 函数体 } 1.类型名给出函数返回值的类型; 2.参数表又称形式参数表,含有每个形参定义, 每个形参定义包含类型和参数名; 3.函数体是要完成的具体操作
类型名可以是空(void),且是整型时可省略。 参数表也可为空(void)。 如: int prime(intx) ∥定义函数,int可省略 for(int i==2;i=x/2;计++)∥从1到x/2的循环体 f(x%i==0 return0;∥x被整除 return 1 2021/224 10
2021/2/24 10 类型名可以是空(void),且是整型时可省略。 参数表也可为空(void)。 如:int prime(int x) //定义函数,int可省略 { for(int i=2; i<=x/2; i++)//从1到 x/2的循环体 if(x%i= =0)return 0; // x被i整除 return 1; }