C语言关于函数学习的总结 您所在的位置:网站首页 语言学function定义 C语言关于函数学习的总结

C语言关于函数学习的总结

#C语言关于函数学习的总结| 来源: 网络整理| 查看: 265

函数

1:函数是先定义后使用的。

2:函数定义于主函数之外,分配有储存空间,独立于其他函数的形式。

3:函数的一般形式:

4:类型标识符函数名(形参表)———形参表可以为空,但括号不能省略

{

函数语句——函数的主体,可以为空,但花括号不能省略

}

例:int f(int x)——x为形参

形参只是一个占位符,标志着在形参出现的位置应该有一个什么类型的数据。

5:函数调用

函数名(实参表)——实参表与形参表相对应

实参可以是常量、变量,还可以是表达式,但如果实参中存在变量,在函数调用时,变量应是有确定值的。

6:函数程序的典型结构:

1) :预处理指令

符号常量定义

函数声明

2) :主函数

3) :函数定义

    为了避免函数在定义前被调用,在调用前声明函数的原型。

    类型标识符 函数名(形参表);——已分号结束

7:参数传递

类型名&引用名=变量名

    定义引用时一定要将其初始化成引用某个变量

    引用只能引用变量,不能引用常量和表达式

8:指针变量

    其内容为地址(储存位置)的变量,简称指针。它所指向的地址上存放的变量称为目标变量。

    指针变量的一般形式:

类型标识符  *变量名  ——*为指针说明符

    指针变量也可赋值: Int  *i_point;

一个指针变量只能指向同一类型的变量。即整形指针变量只能指向整型数据的地址,而不能存放其他数据的地址。

    & 正常操作表示:取地址; 说明变量时代表:引用变量。

    说明变量时前加 * 代表:定义指针变量;正常语句中代表:取指针变量所指的目标内容。

    不能对未赋值的指针变量做“取内容”运算。

9:指针的运算

++(--)表示指向下一个(或上一个)同种类型的数据。

10:函数的参数可以是指针类型,它的作用是将一个变量的地址传送到另一个函数中。

    指针变量作为函数参数与变量本身做函数不同,变量做函数传递的是具体值,而指针变量做函数传递的是内存地址。

    函数调用不能改变实参指针变量的值,但可以改变实参指针变量所指向的变量的值。

11:函数调用的三种传递方式:按值传递,地址传递,引用传递。

    1):按值传递:

过程:首先计算出实参表达式的值,给对应的形参变量分配一个储存空间;

把已求出的实参表达式的值——存入到形参变量分配的存储空间中,成为形参变量的初值,供被调用函数执行时使用。

    被调用函数本身不对实参进行操作!

    2):地址传递

如果在函数定义是将形参说名成指针,调用函数是就需要指定地址值的形参。这时函数的传递方式就是按地址传递方式传递。

    按值传递形参指针和实参指针指向同一地址。因此,被调用函数中对形参指针所指向的地址中内容的任何改变都会影响到实参。

    3):引用传递

如果以引用为参数,既可以使得对形参的任何操作都能改变相应的数据,又使得函数调用显得方便、自然。引用传递方式实在函数定义形参前加上引用运算符“&”。

12:数组与指针

数组也可以用指针来表示。

在C++中,数组名就是数组的起始地址;数组指针就是数组的起始地址。数组元素的指针就是数组元素的地址。

    指向数组元素的指针可通过指针引用数组元素。

    Int a[10];

Int *p=a;

(p+1指向数组的下一个元素,而不是下一个字)

递归函数

1:直接或间接调用自身的函数称为递归函数。

通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。

    基本思想:把一个不能解决或不好解决的大问题转化为一个或几个小问题,再把这些小问题进一步分解成更小的问题,最小的问题可以直接解决。

2: 递归定义:使问题向边界条件转化的规则。递归定义必须能是问题越来越简单。

    递归终止条件:所描述问题的最简单情况,他本身不再使用递归定义。

3:递归算法的三个步骤:

    1):分析问题、寻找递归:找出大规模问题与小规模问题的关系,这样通过递归使问题的规模逐渐变小。

    2):设置边界、控制递归:找出停止条件,即算法可解的最小规模问题。

    3):设计参数、确定参数:设计函数体中的操作及相关参数。

4:半数集:给定一个自然数n,由n开始可以依次产生半数集set(n)中的数。

    1):n∈set(n);

    2):在n的左边加上一个自然数,但该自然数不能超过最近添加数的一半;

    3):按此规则进行处理,直到不能再添加自然数为止。

例:set(6)={6, 16, 26, 126,36, 136}。

注:半数集是多重集。

1:求从1加到n的阶乘的和,输入n的值:

#includeusing namespace std;int jie(int x);int main(){    int n;    cin>>n;    jie(n);}int jie(int x){    int n=1,m=0;    for(int i=1;i    int a=0;  while(n)    {        a=a*10+n%10;        n=n/10;    }    cout    int x;    cin>>x;    for(int a=2;a



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有