A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丁铭检 中级黑马   /  2015-7-9 20:47  /  2062 人查看  /  23 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

一、概念
   一个C程序可由一个主函数和若干个其他函数构成。由主函数调用其他函数,其他函数也可以互相调用。同一个函数可以被一个或多个函数调用任意多次。
   注意:
   1.C程序是从main函数开始执行的
   2.所有函数都是平行关系,即在定义函数时是分别进行的,是相互独立的。一个函数不从属另一个函数,即函数不能嵌套定义。函数之间是可以互相调用,但是不能调用main函数。main函数是由系统调用的。
   3 .从用户的使用角度看,函数有两种。
     3.1 标准函数,即库函数,它是由系统提供的,用户不必自己定义而直接使用他们。
     3.2 用户自定义函数
   4.从函数的形式看,函数分两类
    4.1  无参函数
    4.2  有参函数
二、函数定义的一般形式
  1.无参函数定义的一般形式
       类型标识符  函数名(){
            声明部分
           语句部分
       }
  2.有参函数定义的一般形式
       类型标识符  函数名(形式参数列表){
           声明部分
           语句部分
        }
3.空函数
        类型说明符   函数名(){
         }
例如:
   void dummy(){
       }
三、函数参数和函数的值
    1. 形式参数和实际参数
     在调用函数时,大多数情况下,主调函数和被调函数之间有数据传递关系。这就是有参函数。在定义函数时函数名后面括号中变量名称为“形式参数”(简称“形参”),在主调函数中调用一个函数时,函数名后面括号中的参数(可以是一个表达式)称为“实际参数”(简称“实参”)。
     注意:
      1.在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元。只有在发生函数调用时,函数中的形参才被分配内存单元。在调用结束后,形参所占的内存单元也被释放。
    2. 实参可以是常量、变量或表达式
    3.在被定义的函数中,必须指定形参的类型
    4.实参与形参的类型应该相同。如果类型不相同则根据不同类型数值的赋值规定进行转换。  字符型和整型可以互相通用,参照ACII表进行转换。
   5.实参向形参的数据传递是“值传递”,单向传递,只由实参传给形参,而不能有形参传给实参。在内存中,实参单元与形参单元是不同的单元。
    在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元扔保留并维持原值。因此,在执行一个被调用函数时,形参的值如果发生改变,并不会改变主调函数的实参的值。
   2. 函数返回值
      1.函数的返回值时通过函数中的return语句获得的。return语句将被调函数中的一个确定值带回主调函数中去。
      2.函数值的类型。既然函数有返回值,这个值当然应属于某一个确定的类型,应当在定义函数时指定函数值的类型。
      3.在定义函数时指定的函数类型一般应该和return语句中的表达式类型一致。如果函数值类型和return语句中表达式的值类型不一致,则以函数类型为准。即函数类型决定返回值的类型。
      4.对于不带返回值的函数,应当用“void”定义函数为“无类型”或成“空类型”。
四、函数调用
    1 .函数调用一般形式
      函数名(实参列表)
     如果是调用无参函数,则“实参列表”可以没有,但括号不能省略。如果实参列表包含对个实参,则各参数之间用逗号隔开。实参与形参的个数应该相等,类型应匹配。实参与形参按顺序对应,一一传递数据。
  2.函数调用的方式
   1. 函数语句
    把函数调用作为一个语句。
   2.函数表达式
    函数出现在一个表达式中,这种表达式称为函数表达式。
   3. 函数参数
    函数调用作为一个函数的实参。
3.对被调用函数的声明和寒素原型
   函数原型的一般形式:
   函数类型  函数名(参数列表);
五、函数嵌套调用
    C语言不能嵌套定义函数,当可以嵌套调用函数,也就是说,在调用一个函数的过程中,又调用另一个函数。
六、函数的递归调用。
    在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。
    注意:
      程序中不应该出现无终止的递归调用,而只应该出现有限次数的,有终止的递归调用,这可以用if语句来控制,只有在某一个条件成立时才继续执行递归调用,否则就不在继续。

C语言函数大全(语法着色版).chm

178.71 KB, 下载次数: 155

C语言函数大全

23 个回复

倒序浏览
好多蚊子,看花了
回复 使用道具 举报
这笔记很不错啊
回复 使用道具 举报
大神啊 学习了
回复 使用道具 举报
大神,学习了,很好的东西。
回复 使用道具 举报
然并卵!不过还是点个赞
回复 使用道具 举报
4B青年 发表于 2015-7-9 22:17
然并卵!不过还是点个赞

都是一些基础的东西,无奈啊。貌似入学考试要有帖子啊。。。
回复 使用道具 举报
25分都还这么拼       不过还是谢谢分享   
回复 使用道具 举报
学习学习!加油!
回复 使用道具 举报
笔记写的挺详细的啊
回复 使用道具 举报
非常感谢 总结的很详细
回复 使用道具 举报
neobug 发表于 2015-7-10 09:41
非常感谢 总结的很详细

谢谢夸奖,虽然知道你没从头到尾的看过一遍。。。:loveliness:
回复 使用道具 举报
llo 来自手机 中级黑马 2015-7-10 12:22:59
13#
return返回的类型必须和定义的函数的类型相同吧???不然会报错的吧
回复 使用道具 举报
llo 发表于 2015-7-10 12:22
return返回的类型必须和定义的函数的类型相同吧???不然会报错的吧

可以不同,不会报错。但会出警告。。因为类型不同的话很容易数据误差就很大,影响数据的理想值。。。

点评

llo
受教了,,谢了*^_^*  发表于 2015-7-10 12:33
回复 使用道具 举报
丁铭检 发表于 2015-7-10 12:31
可以不同,不会报错。但会出警告。。因为类型不同的话很容易数据误差就很大,影响数据的理想值。。。 ...

谢谢夸奖,视屏我也才刚看完这里。。。
回复 使用道具 举报
很好的笔记,赞一个收下了
回复 使用道具 举报
zpy_0806 发表于 2015-7-10 14:15
很好的笔记,赞一个收下了

谢谢。。。。
回复 使用道具 举报
学习学习!
回复 使用道具 举报
受教啦!
回复 使用道具 举报
顶一个!!!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马