zoukankan      html  css  js  c++  java
  • C语言基础06

    函数:

     一组特定功能的代码段,之所以使用函数,为了在文件多处需要同一段代码时可以多次重复利用,减少代码冗余.

    //函数的声明

      返回值类型 函数名称 ( 数据类型 形参1,数据类型 ,形参2 ) ;

    //函数的定义

      返回值类型 函数名称 ( 数据类型 形参1,数据类型 ,形参2 ){...}

     以下是函数的4中表现方式:

    //无返回值无形参

    void 函数名称1( ){..}

      void myPlay( ){

        printf("hello ,大家好,这是一个无返回的无形参的数字");

      }

    // 无返回值有1到多个形参面,当无返回值的时候一定要家void,不能省。

    void 函数名称2( int a , int b ){...}

      void myPlay2(int a, int b ){

        printf("a的只是%d,和b的只是%d",a,b);

      }

    //有返回值无形参

    int 函数名称3( ){..}

      int  myPlay3( ){

        return 45;   //定义有返回值的时候,return 必须有,无论你是retrun  神马

      }

    //有返回值和有形参

    数据类型 函数名称4( float a, float b ){...}

      int  myPlay4( ){

        int c = a + b ;

        return  c ; 

      }

    注意,函数必须需要先声明后定义,最后才能被main函数调用,

    函数声明一般在main函数前面, 函数定义可以在main函数前面和后面, 在main函数中调用用户自定义函数.

    函数的形参和实参的关系

    1.形参是函数内部声明的变量,它的作用域在仅仅函数内部,函数执行完毕后,形参的值会消失.

    2.函数内部修改形参变量的值,外面的实参的值不变,

    3.实参跟函数调用有关, 形参拷贝实参的值,但是他们不是指向同一个内个地址.

    int sum (int a, int b);   a和b是形参.a和b变量只能在函数内部使用.

     int sum (int a , int  b){

      int sum  = a + b;

      printf("a的内存地址是%p ",&a);  //a的内存地址 ,a于x不在同一内存区间.就是里面的值相同.

      return sum;

    }

    int main( ){

      int x =30,y = 50;   // x于y就是实参

      printf("x的内存地址是%p ",&x);  //x的内存地址 %p占位符

      printf("sum的值为:%d ",sum(x,y));

    }

    数组作为参数.只需要传递数组名称即可,将数组在内存中的首地址传递给函数.

    void printArray( int arr[ ] );

    void printArray( int arr[ ]){

      arr[0] =33;  //改变数组a[0]的值.    

    }

    int main( ){

      int arr[] ={0,1,2,3,4,5,6,7,8,9};

      printArray( arr );  // 只需传入arr 数组名称

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

         printf("The end of Result :%d ",arr[ i ]);   //{33,1,2,3,4,5,6,7,8,9}  

         //  传递数组首地址,共享同一内存区域.函数内部改变,main函数中调用也会改变.

      }

     } 

    函数dayOfYear(year, mouth,day),使得函数返回这三个参确定的那一天是⼀年中的第几天??

    int dayOfYear(year, mouth,day);

    int dayOfYear(year, mouth,day){

      int feb = 0;

      if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)){

        feb = 29;

      }else{

        feb = 28;

      }

      int mouths ={31,feb,31,30,31,30,31,31,30,31.30,31};

      for(int i = 0 ;i < (mouth -1);i++ ){

        day+=mouths[i];

      }

      return  day;

    }

    编写函数,返回正整数n中的数字的个数

    int countNum(unsinger long N ){

      int count = 0;

      while(N > 0 ){

        N =N /10;

        count++;

      }

      return count;

    }

  • 相关阅读:
    [Clr via C#读书笔记]Cp4类型基础
    [Clr via C#读书笔记]Cp3共享程序集和强命名程
    [Clr via C#读书笔记]Cp2生成打包部署和管理应用程序和类型
    [Clr via C#读书笔记]Cp1CLR执行模型
    试用Markdown来写东西
    字符编码的总结
    常去的网站
    Click Once使用总结
    【LevelDB源码阅读】Slice
    【程序员面试金典】面试题 01.05. 一次编辑
  • 原文地址:https://www.cnblogs.com/liruoxuan/p/4073378.html
Copyright © 2011-2022 走看看