码迷,mamicode.com
首页 > 其他好文 > 详细

黑马程序员-C学习日记-函数

时间:2015-12-10 21:21:12      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

 

------- ios培训、 android培训、java培训、期待与您交流! ----------

 

一.函数的基本概念

1.函数:完成特定功能的代码块

2函数作用:管理代码的

3.函数优点: 提高代码的可读性

              提高代码的可复用性

              提高代码的可维护性

4.注意点:函数名不可以重复定义

              要给函数起一个有意义的名字

5.函数特点:只有调用才会执行。

                 函数可以封装代码块

 

二.定义函数

1.函数定义的格式

返回值类型  函数名称(参数类型 参数名称,参数类型 参数名称,...

{

          语句;

          ……

        return  xx;  

     }

2.如何定义一个函数

1)根据函数的功能给函数起一个有意义的名字

2)确定需不需要传入一些补助的值

3)确定需要返回什么类型的数据给函数调用者

4) 完成函数功能(写语句)

void :当函数没有返回值的时候,就将函数的返回值类型声明为 void

         当函数返回值类型为void的时候,return可以省略

3.定义一个无形参无返回值的函数

    void printfname()

    {

       printf("my name is liyang\n");

    }

 

什么时候需要形参:当我们完成某个功能,有些数据我们不能确定,那么这时候就需要外界告诉我们

4.定义一个有形参无返回值的函数

      void printfManyNames(int nums)

      {

         for(int i=0;i<nums;i++){

          printf("my name is liyang\n");

         }

      }

返回值类型:函数执行完毕之后返回什么类型的值给函数调用者

5.定义一个有形参有返回值的函数

       int sum(int num1,int num2)

       {

        return  num1+num2;

       }

6.定义一个有返回值无形参的函数

     double pi()

     {

return 3.1415926

 }

 

三.函数参数

形参:当定义函数的时候,函数名称后面小括号中的参数我们称为形式参数,简称形参

实参:当调用函数的时候,函数名称后面小括号中的参数我们称为实际参数,简称实参

注意点:1..实参与形参是一一对应的     

    

2.形参是什么类型的值,实参也必须传入什么类型的值

3.形参列表中不可以有同名的形参

4.在函数内部也不可以直接定义与形参同名变量

重点:基本数据类型作为函数参数传递的时候是值传递(仅仅是把实参的值赋给形参,改变形参的值,并不影响实参值).

 

代码演示

 1 #include <stdio.h>
 2 
 3 // 定义一个求和的函数
 4 
 5 int sum(int num1,int num2)
 6 
 7 {
 8 
 9      num1 = 20;
10 
11      return num1+num2;
12 
13 }
14 
15 int main(int argc, const char *argv[]{
16 
17     int a = 10;
18 
19     int b = 11;
20 
21     //调用求和函数
22 
23     double rs = sum(a,b);
24 
25     printf("a=%d,rs=%d\n",a,rs);// a = 10   rs = 21
26 
27  return 0;
28 
29  }

 

 

四.函数返回值

1.函数定义中声明是什么返回值类型,那么在主调函数中就必须使用相同变量接收

2.在C语言中没有函数重载的概念,它区分函数仅仅是根据函数名称,只要是名称相同就是重复定义,无论形参是否不同

3.什么样的返回值类型就必须返回什么类型的值,确保返回的值的类型与函数定义的返回值类型一致

4.如果函数定义中的返回值类型不为空,那么就必须返回一个值

 

五.自己的理解

return的作用

1.返回数据给函数调用

2.结束函数

函数的调用过程

实参的值赋给形参,在被调函数中完成功能,返回值给主调函数

1.函数内部不可以再定义其他函数

2.函数可以嵌套调用,在一个函数内部可以调用其他的函数,被调用的这个函数内部也可以调用其他函数

 

代码演示

本题思路是main函数调用average函数,average函数调用sum函数,返回值过程从上到下,调用过程从下到上

#include <stdio.h>

// 定义一个求和的函数

int sum(int num1,int num2)

{

     return num1+num2;

}

//定义一个求平均值的函数

int average(int num1,int num2)

{

    return sum(num1,num2)/2;

}

int main(int argc, const char *argv[]{

   int a = 10;

   int b = 20;

   int rs = average(10,20);

   printf(“rs=%d\n”,rs);

return 0 ;

}

 

 

六.函数声明

1.函数声明:就是把函数头拷贝到调用它的函数的前面

2.作用:告诉编译器这个函数已经存在了

注意点:

(1)一个完整函数包含2个部分:函数声明和函数定义

(2)无论是声明函数或者定义函数,如果不写返回值类型那么默认是int类型

(3)我们写代码的时候,必须带上返回值类型

(4)函数的声明与定义务必要保持一致,只要有函数声明即可编译成功,要有函数定义才能链接成功

 

黑马程序员-C学习日记-函数

标签:

原文地址:http://www.cnblogs.com/ly0709/p/5037020.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!