C语言函数

第5章 函数

 

第5章
函数
1.
函数
2.
变量的作用域
1.
片段变量
2.
全局变量
3.
变量的蕴藏方
小结

 

目录:

1. 函数

  1. 打函数定义之角度看,函数可分为库函数和用户从定义函数两种
    1)
    库函数:由C系统提供,只待以先后前包含有欠函数原型的峰文件即可在次中一直调用
    2)
    用户从定义函数:由用户以需要写的函数,不仅以先后中定义函数本身,而且当主调函数模块中还须对该于调用函数进行项目说明,然后使
  2. 从函数兼闹另语言中的函数和经过的简单独力量,又只是分为起返值函数和任返回值函数
    1)
    有归值函数:此类函数被调用执行完毕后拿通向调用者返回一个执行结果,称为函数返回值;由用户定义之这种如回来值得函数,必须以函数定义和函数说明遭到明确返回值的品种
    2)
    凭返回函数:此类函数在做到一定的处理任务,执行就后不为调用者返回函数值。由于函数无须返回值,用户定义此类函数时可指定她的回到吗”空类型(void)”
  3. 打主调函数和吃调函数之间数据传送的角度可分为随便参函数和生参函数
    1)
    无参函数:函数定义、函数说明跟函数调用中全不牵动参数。主调函数和为调函数之间莫开展参数传送。可以回到或不回函数值
    2)
    生参函数:在函数定义及函数说明时犹来参数,称为形式参数(形参)。在函数调用时也不能不给起参数,称为实际参数(实参)。进行函数调用时,主调函数将将实参的值传送给形参,供被函数使用
  4. 函数定义的貌似式
    1) 管参函数的一般式

<wiz_code_mirror>

 

 

 

 

 

1 类型说明符 函数名(){
2     类型说明
3     语句
4 }

 

 

 

里类型说明符和函数名称也函数头
类型说明符指明了本函数的色,函数的色实际上是函数返回值的种。函数叫作是由用户定义的标识符,函数名后有一个空括号,其中管参数,但括号不可少。{}
中的内容称函数体。在部数体中也出路说明,
这是对函数体内部所用到之变量的项目说明。在群气象下还未求管参函数发返回值void
2) 生参函数的相似式

<wiz_code_mirror>

 

 

 

 

 

1 类型说明符 函数名(形式参数表)
2     形式参数类型说明
3     {
4     类型说明
5     语句
6     }

 

 

 

其一是花样参数表
其二是花样参数类型说明。在显示参表中为起的参数称为花样参数
它们可以是各种类型的变量,必须叫以档说明,
各参数之间为此逗号间隔。在进展函数调用时,主调函数将予以这些样式参数实在的值

  1. 函数的参数:分为形参和实参;形参出现于函数定义着,于普函数体内都得采用,
    离开该函数则未克以
    。实参出现于主调函数中,进入被调函数后,实参变量也未克采取,功能是发作多少传送。发生函数调用时,
    主调函数把实参的价传送给受调函数的形参从而实现主调函数向为调函数的数量传送
    函数的形参和实参的性状
    1)
    形参变量只有在为调用时才分配内存单元,调用了晚,即刻释放所分配的内存单元。形参只有当函数内部有效,函数提哦啊用结束返回主调函数后虽说非克再运该形参变量
    2)
    实参可以是常量、变量、表达式、函数等,在展开函数调用时,都须持有确定的值,以便把这些价值送给形参
    3)
    实参和形参在数量上、类型上、顺序上许严格平等,否则会时有发生“类型不配合”的不当
    4)
    函数调用中产生的数码传送是单向的,即只能将实参的值传送给形参。因此于函数调用时,形参的值发生反,而实参中的价值不见面变
  2. 函数的价:指函数被调用后,执行函数体中之次段所收获的连返回给主调函数的值,(或称函数返回值)对函数的价的说明:
    1) 函数的值只能故而了 “return 表达式”
    语句返回主调函数
    ,该语句之成效是算表达式的价值,并赶回给主调函数,
    2)
    函数值的类别和函数定义中函数的品类应保持一致,如果两者不雷同,则因为函数类型也以,自动进行类型转换
    3) 如函数值为整型,在函数定义时好节约类型说明
    4) 不返回函数值的函数,可以一目了然概念为空类型 (void)
  3. 为调函数
    任参函数一般式: 品类说明符 被调函数号称()
    来参函数一般式: 品种说明符 被调函数名叫(类型 形参, 类型
    形参···)
  4. 函数的递归使用:一个函数在它的函数体内调用它本身名递归调用,为了以防万一递归调用无终止进行,加条件判断
  1. 【函数注意点】

2. 变量的作用域

  1. 【函数目的】

1. 片变量

  1. 一些变量:也称为中变量。在函数内举行定义说明的。其发用域仅限于函数内,离开函数后再度用变量是违纪之
    片变量作用域说明
    1) 主函数着定义的变量也只能以主函数惨遭以,不能够在其他函数中使
    2)
    形参变量是属让调函数的有些变量,实参变量是属主调函数的有变量
    3) 允许在不等之函数中采用相同的变量名
  1. 【函数格式】

2. 全局变量

  1. 全局变量:也称外部变量,是在函数外部定义之变量;其作用域是任何源程序,只有在函数内通过验证的全局变量才会应用,全局变量说符为extern
    全局变量作用域说明
    1) 外部变量定义必须在享有的函数之外,且不得不定义一糟糕。一般式:
    [extern] 类型说明符 变量名, 变量名··· extern int a, b
    2)
    外部变量可增进函数模块之间的多少联系而是会叫函数的独立性降低
    3)
    在同一源文件中,允许全局变量和有些变量同名,在有的变量的意图域内,全局变量不起作用
  1. 【函数定义前需明确的原则】

3. 变量的存储方

  1. 静态存储 和 动态存储
    静态存储变量通常是在
    常量定义时便分定存储单元并一直无移,直至整个程序结束;全局变量即使属于此类存储方;
    动态储存变量是当程序执行过程被,使用它们常才分配存储单元,使用完立即放飞,函数的款型参数不怕属于此类存储方
    静态存储变量是直有的,而动态储存变量则时有时无,对变量的存储类型说明:
auto 自动变量
register 寄存器变量
extern 外部变量
static 静态变量
  • 自行变量和寄存器变量属于动态储存方
    外部变量和静态变量属于静态存储方
  1. 【函数的形参、实参】

小结

  1. 函数的分类
    1) 库函数:由C系统提供的函数
    2) 用户定义函数:由用户自己定义的函数
    3)
    生返回值的函数向调用者返回函数价,应辨证函数类型(即返回值的类)
    4) 无论是返回值的函数:不回来函数价值,说明呢空(void)类型
    5) 产生参函数:主调函数向于调函数传送数量
    6) 无参函数:主调函数和为调函数无传送数据
    7) 里函数:只能于本院文件中使的函数
    8) 表函数:可每当尽源程序中使用的函数
  2. 函数 定义 的形似式
    [extern/static] 类型说明符 函数叫做([形参表]) 方括号内也可选框
  3. 函数 说明 的形似式
    [extern] 类型说明符 函数名 ([形参表])
  4. 函数 调用 的一般式
    函数名 ([实参表])
  5. 函数的参数
    分为形参 和
    实参
    ,形参出现于函数定义着,实参出现在函数调用中,发生函数调用时,将拿实参的价值送给形参
  6. 函数的价
    指函数的返值,是当函数中由于 return 语句返回的
  7. 再三组名作为函数参数
    免进行价值传送而进展地点传送,形参和实参实际上为和一个数组的片只称呼,因此形参和实参同时转
  8. C语言中,允许函数的嵌套调用 和 函数的递归调用
  9. 而根据变量的数据类型、变量作用域和变量的积存类型针对变量分类
  10. 变量的作用域是凭变量在先后中的行之有效限制,分为有变量 和 全局变量
  11. 变量的储存类型是凭借变量在内存中的积存方,分为静态存储 和
    动态存储
    ,表示了变量的生存期
  1. 【函数返回值注意点】
  1. 【为什么要return】
  1. 【C语言上手常见问题】
  1. 标函数和中函数

1. 函数注意点

· 每条语句后面要来;号

· 除 “ ”
号内援起来的地方,其它任何地方都非能够冒出中文

· main函数中之return
0;可以形容,也只是免写

· main函数前之int可以写啊足以免写

· main函数后面()号不可省略

·
同一个先后中才出一个main函数(main函数是程序入口)

2. 函数据的

以一个常用的功效封装起来,方便以后调用,使代码更加整洁,增加可读性。

3. 函数格式

格式:                                                               
例:定义一个返回值为 int 类型的 test 函数,包含 a,b 2单 int
类型的形参,返回 0 。

 

    返回值类型 函数名 (形参列表)      
                  void test (int a, int b)
    {                                                                  
         {
       函数体(代码块)                                                
  return 0;
    }                      
                                                     }

4. 函数定义前待明确的准

·
有含义之号(方便查阅、交流,减少沟通成本)

·
是否有形参?是否有归值?它们的数据类型是什么?

5. 函数的形参、实参

形参:定义函数时函数名叫后()号丁之参数。

实参:调用函数时传入的参数。

注:

     · 形参个数必须同实参一致。

     ·
函数体内部不可知定义及形参一样名称的变量

     ·
函数内部的显得参值不会见潜移默化及表面的实参值

     ·
一个函数可以无形参或出成百上千个形参 

6. 函数返回值注意点

· void 代表没有返回值

· 如果没有显著返回值类型,默认为 int
类型

·
就算明确了回值类型,也得不归外价值

7. 怎么要return

报系统退出返回0为正常,除0以客为不规则退出。

8. C语言上手常见问题

· 函数是否可嵌套使用?   否

· 函数是否能再次声明?   是

· 函数是否能够重新定义?   否

·
为什么能重复声明如休可知再定义函数?

C语言中扬言函数是为着告诉系统,我们的代码中涵盖了声称的函数。而定义函数是函数的求实实现。重复定义的语系统会将那个作为不同之函数,当函数称作及返回值又同样,编译时就是会报错。如果只有声明,没有落实,则编译时无会见报错,但链接时无见面透过。

·
为什么编译时无报错,但运行时报错?

为编译时止检测语法是否合理。如果成立,编译器会支援我们班先后开展链接操作,所以出现这种气象,肯定是代码不正经或逻辑错误致。

9. 外部函数和内部函数

 

1.标函数 
概念的函数能给据文件以及任何文件访问(默认)。

流淌:不容许生同名的标函数。

2.内部函数 
概念的函数只能于按文件访问,其它文件未可知顾。

注:允许不同文件中生同名的中间函数。

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图