C语言基础--函数和结构体

原创 2015年12月08日 15:42:29
函数  
  
        具有特定功能的代码段叫做函数;简单地说函数就是一连串的语句组合在一起,实现某种功能,就取名代替这些语句。
      -----------------------------------------------------------------
   特点:
      1、都实现了某一种功能
      2、函数的使用可以省去重复的代码编写,大大简化程序,提高开发效率 
   ---------------------------------------
     从定义来看,函数可分为:
     1、库函数,系统提供好的函数,只需要使用时调用,不用关心函数的内部实现。
     2、自定义函数 程序员自己定义的函数。  
   ---------------------------------------    
     如何定义自己的函数:
     定义:返回值类型 函数名(形式参数列表)
          {语句;//代码片段     return返回值;}
    例:
       自定义数的和

       //编写函数int sumValue(int n):计算1n的和。

        int sumValue(int n){

            int sum = 0;

            for (int i = 1; i <= n; i++) {

            sum = sum + i;

          }

         return sum ;

        }


        返回值类型:voidintcharfloat...
    返回值类型可以使基本数据类型,也可以是void空类型。

         特别注意:
               1当函数的返回值类型是void的时候,函数体内不需要return返回值;
      2 当函数返回值不是void的时候,体内需要return返回值,并且要与返回值类型要与函数定义时的返回值类型保持一致。
      3程序遇到return,就会跳出函数,不再往下执行,所以不要在return后写任何代码。
      4return的返回值可以使常量,也可以是变量,但类型一定要和函数返回值一致。
    --------------------------------------           
    形式参数列表
    概念:需要参与函数执行的一个变量       形式参数的定义没有个数限制,可以随便定义
    定义:基本数据类型 参数名
     多个形式参数之间用逗号隔开; 形式参数和函数返回值类型没有关系
    函数返回值的类型与return中返回值类型一致;
    -----------------------------------------     
函数分类  1、根据返回值和参数可以将函数划分为4
     有参数,有返回值       无参数,无返回值    有参数,无返回值    无参数,有返回值。
         分类如下各例:

     //无参数,无返回值

      void introduce(void){

          printf("大家好!我来自火星,我叫*****\n");

      }

    //有参数 无返回值

      void num(int i)   //形式参数

      {

        printf("%d\n",i);

      }

    //有参数,有返回值

    int number(int age,float b ){

        printf("今年%d岁了\n",age);

        return age; 

    }


     //无参数,有返回值

      long lo(void){

         return 321546887945;

      }

         形参,实参 形参,出现在函数定义中,以变量的名字来表示实际函数调用过程中需要提供的值
       实参出现在函数调用过程中的
       注意:函数调用中,形参会拷贝实参的内容。传递参数是给函数传递信息的方式
          ----------------------------------------------------------------------------
    关于函数的返回值
     1、函数返回的值被称为函数的值,并且只能通过return语句返回主调函数。
     2
、一个函数只能有一个返回值。
     3
、函数即使没有返回值,也可以使用return来结束函数的执行。
     4return后边的语句不会被执行
        ------------------------------------------------------------------------------
       严格上的函数包括三个部分:函数声明、函数定义、函数调用
        函数声明就是对函数的描述(实际就是给函数取个名字,后边加分号),没有具体的实现,后边加分号结尾。
   注意的两点
       1、函数定义出现在主调函数之前,函数声明可以省略。
       2、函数定义出现在主调函数之后,需要提前说明函数。 
    函数嵌套      函数的嵌套
       C语言中不允许嵌套定义,但可以嵌套调用        
       C语言中允许函数再次调用函数本身,这种调用方式成为递归调用,这个函数就叫做递归函数        
      警告:递归调用一定要有出口!!!!!!!!
       如下例

   //用递归求n

    // n! = n * (n - 1)!

    // n=1    //递归调用的出口;

    int fun(int n);

    int fun(int n)

    {

         if (n == 1) {

             return 1;     //跳出递归的条件

           }

     return n * fun(n - 1);  //递归调用的公式

     }


   变量的作用域
     
变量的有效范围: 全局变量  局部变量
     
定义在函数体外的变量为全局变量
     
定义在函数体内的变量为局部变量
      全局变量和局部变量可以重名,但是在局部变量作用域内,只能访问局部变量。

结构体
 结构体:是一种自定义的数据类型。
 结构体声明;
    struct结构体名
    {
     类型说明符 成员名;
      ....               //可以定义多个结构体成员
     类型说明符 成员名;
    };
   格式如下:

   struct student1

   {

       int number;       //学号

       char name[20];    //姓名

       char sex;         //性别

       float score;      //成绩

        ……

   };

 
  
  结构体变量
   定义:有结构体修饰的变量叫做结构体变量
    struct结构体名 变量名 = {初值}
结构体成员的访问
    结构体变量名.成员变量名
 typedef
        为现有的类型创建一个类型别名
      语法:typedef 原类型名 新类型名

       typedef struct student{

            char name[20];

            float score;

            int age;

        } Student;


 结构体数组
 将多个结构体变量放到数组中,构成结构体变量

        typedef  struct student{

            int num;

            char name[20];

            float score;

        }Student;

        Student stu[5] = {{1, "red", 92.5},{2, "green", 92},{3, "bluk", 89},{4, "black", 96},{5 , "yellow", 90}};





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

郝斌的C语言基础 159-161 通过函数完成对结构体变量的输入输出

#include #include struct Student { int age; char sex; char name[100]; }; void InputStu...
  • asty008
  • asty008
  • 2016年12月11日 10:39
  • 126

C语言基础---------函数,结构体

函数 一 函数的定义 1.函数:能完成特定功能的代码段. 2.使用函数的好处:简化代码,避免重复代码,提高开发效率,集中控制,保证安全. 3.函数从定义的角度讲可分为:库函数和自定义函数....

C语言基础———指针,结构体指针,函数指针

指针基础 一 指针就是地址,地址就是指针.指针存储的是内存的地址. 二 指针的定义 1.&表示取址运算符,&a 可以取到 a 在内存中的地址;打印地址的占位符为(%p),printf(“%p...

黑马程序员--ios基础--c语言--结构体、枚举

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------  一.结构体的定义及简单使用 数组:职能由多个相同类型的数据构成结构体:可以由多个不...
  • yuanptt
  • yuanptt
  • 2015年05月17日 21:45
  • 253

c语言基础回顾-结构体

定义结构体变量 /* 结构体 自定义的一种类型称为构造类型,在C语言中称为结构体 定义结构体: struct [结构体名] { [成员列表;] }; 定...

C语言基础(九)结构体、补充typedef用法

1、作用:一个变量可以保存多个不同类型的数据 2、定义结构体的语法:      struct 结构体名      {           成员列表;      };      例:stru...

黑马程序员——C语言基础---结构体1

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------                      第一讲    构造类型及结构体  1、C语言构造类型 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言基础--函数和结构体
举报原因:
原因补充:

(最多只允许输入30个字)