函数与预处理

函数是程序代码的一个自包含单元,用于完成某一特

定的任务。

 有的函数完成某一操作;

 有的函数计算出一个值。

通常,一个函数即一个程序必须有且只有一个main( )函数,C++从main( )

函数开始执行。

C++语言中,所有函数都是平行独立的,无主次、相

互包含之分。函数可以嵌套调用,不可嵌套定义。能完成某一特定操作,又能计算数值。

函数分类

从用户使用的角度看,函数有两种:

(1) 系统函数,即库函数。这是由编译系统提供的,用户

不必自己定义这些函数,可以直接使用它们。

(2) 用户自己定义的函数。用以解决用户的专门需要。

用户在设计程序时,可以将完成某一相对独立功能的程序定义为一

个函数。用户在程序中,根据应用的需要,由用户自己定义函数,

这类函数称为用户自定义的函数。

函数分类

从用户使用的角度看,函数有两种:

(1) 系统函数,即库函数。

(2) 用户自己定义的函数。

从函数的形式看,函数分两类:

(1) 无参函数。调用函数时不必给出参数。

(2) 有参函数。在调用函数时,要给出参数。在主调函数

和被调用函数之间有数据传递

标准函数/库函数

库函数是C++编译系统已预定义的函数,用户根据需要可以

直接使用这类函数。库函数也称为标准函数。

•C++把一些常用函数作为库函数提供给用户,用户可以直

接使用系统提供的库函数:

•数学计算函数(如sqrt()、pow(),fabs(),exp()等, cmath)

•字符串处理函数(string)

•标准输入输出函数等(iostream),

•用户使用任一库函数时,直接使用,不用定义,但在程序

中必须包含相应的头文件。

如 #include<iostream>等。

定义函数的一般形式

类型标识符 函数名()

{声明部分

语句

void printstar() //定义printstar函数

{

cout<<"************ "<<endl;

}

般形式 类型标识符 函数名()

{声明部分

语句

}

例如:

void printstar (void )

{ cout<<"* * * * * * * * * * *\n";

}

void print_message (void)

{ cout<<"How do you do! \n";

}

void main(void )
{ printstar ( );
print_message ( );
printstar( );
}

定义有参函数的一般形式

类型标识符 函数名(形式参数表列)

{声明部分

语句

int max(int x,int y)

{int z;

z=x>y?x:y;

return (z);

C++要求在定义函数时必须指定函数的类型。

函数参数和函数的值

1 在定义函数时 形式参数和实际参数 函数名后面括号中的变量名称为

形式参数(formal parameter,简称形参)。

 形参是被调函数中的变量;

在主调函数中调用一个函数时,函数名后面括

号中的参数(可以是一个表达式)称为实际参数

(actual parameter,简称实参)。

 实参是主调函数赋给被调函数的特定值。

 实参可以是常量、变量或复杂的表达式,不管是哪

种情况,在调用时实参必须是一个确定的值。

实参可以是常量、变量或表达式,但要求有确定的值。

实参变量对形参变量的数据传递是"值传递",即单向传

递,只由实参传给形参,而不能由形参传回来给实参。在

内存中实参、形参分占不同的单元。

实参与形参一一对应,类型应相同或赋值兼容。

不同的函数中可以使用相同的变量名和形参名,他们是

不同的变量。

函数的返回值

函数的返回值通过return语句获得。函数只能有唯一的

返回值。

函数返回值的类型就是函数的类型。

return语句可以是一个表达式,函数先计算表达式后再返

回值。

return语句还可以终止函数,并将控制返回到主调函数。

return 语句之后的代码是不能执行的代码。

一个函数中可以有一个以上的return语句,执行到哪一

个return语句,哪一个语句起作用。

int add ( int a, int b)

{

return (a+b); 先计算后赋值

}

int max ( int a, int b)

{

if (x>y)

return x ;

else return y;   可以有多个返回语句

}

若函数体内没有return语句,就

一直执行到函数体的末尾,然

后返回到主调函数的调用处。

既然函数有返回值,这个值当然应属于某一个确定的类型,

应当在定义函数时指定函数值的类型。

int max (float a, float b) // 函数值为整型

函数返回值的类型,也是函数的类型

不带返回值的函数可说明为void型。

函数的类型与函数参数的类型没有关系。

double blink ( int a, int b)

如果函数的类型和return表达式中的类型不一致,则以

函数的类型为准。函数的类型决定返回值的类型。对数值

型数据,可以自动进行类型转换。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值