找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

C++系统教学(基于过程)——4.函数(上)

admin 2019-8-26 05:23 97人围观 C++相关

C++系统教程(基于过程)——4.函数(上)

(含习题)

·  正  ·  文  ·  来  ·  啦  ·

1.函数的分类

(1)系统函数

即库函数,由编译系统提供,需要用#include指令包含函数所在的头文件。

如求素数用的sqrt函数,开头要这样声明#include <cmath>。

(2)自定义函数

①无参函数

调用时不给参数,一般用来执行一个固定的操作。

②有参函数

调用时必须给出参数。

例1:(无参函数)定义一个无参函数,用来输出一排星号和文字“Hello World!”



例2:(有参函数)向计算机输入两个数,用一个函数求出两数之和。





2.定义函数

就是编写一个函数

(1)定义无参函数

格式:

类型名 函数名(void)

{

    函数体语句

}

括号里的void可以不写,但一般写上。

(2)定义有参函数

格式:

类型名 函数名(形参表列)

{

    函数体语句

}



3.函数的返回值

通过函数的调用使主函数得到一个确定的值,就是函数的返回值。

(1)返回值通过return 语句获得。

①如果不需要返回值,可以不要return语句

②return语句后面的括号可要可不要

③ return后面的值可以是一个表达式

如把例2改成return(x+y);

(2)函数值的类型

返回值的函数类型就是定义时函数的类型

(即使return语句里值和函数类型不一样,也会转换成函数类型。)



4.函数的调用

调用时参数不能写类型名

(1)格式1:函数语句

把函数调用作为一个单独语句,不要求带回一个值。

如例1中 print_();

(2)格式2:函数表达式

函数出现在表达式中。

如例2中    c = add(a, b);      

(3)格式3:函数参数

函数调用的值作为另一个函数调用的参数

如m=max (a , sqrt(b) );

(4)函数的嵌套调用

在一个函数定义里不能同时定义另一个函数,但可以调用另一个函数。

(5)函数的递归调用(函数(下)详细讲)



5.被调用函数的声明

(1)调用函数条件

①被调用函数必须存在

②若是库函数,第一点说过怎么声明

③用户自定义函数,若定义在调用之后,调用前要先声明。

(2)函数声明

格式:

函数类型 函数名(参数类型1,参数类型2 …)



函数类型 函数名 (函数参数1 参数名1, 参数类型2 参数名2 …)

如例2,函数定义在调用之后,调用前必须先声明    float add(float, float);

否则编译系统不知道add是啥。



6.形参和实参

定义函数时,函数名后面括号里变量是形式参数(形参);

调用函数时,函数名后面括号里变量是实际参数(形参)。

7.全局变量和局部变量

(1)全局变量:函数外定义的变量。

作用范围:从定义到程序结束

(2)局部变量:函数内部定义的变量。

作用范围:只在定义变量所在函数内有效



习题:写一个判断素数的函数,输入一个函数,输出是否为素数的信息。



·  正  ·  文  ·  结  ·  束  ·

有问题加QQ群




----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:程序设计学堂,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

yafeilinux和他的朋友们微信公众号二维码

微信公众号

专注于Qt嵌入式Linux开发等。扫一扫立即关注。

Qt开源社区官方QQ群二维码

QQ交流群

欢迎加入QQ群大家庭,一起讨论学习!

我有话说......