zoukankan      html  css  js  c++  java
  • 指针的高阶用法——传递指针给函数

    C 语言允许您传递指针给函数,只需要简单地声明函数参数为指针类型即可。
    下面的实例中,我们传递一个无符号的 long 型指针给函数,并在函数内改变这个值:

    #include <stdio.h>
    #include <time.h>
     
    void getSeconds(unsigned long *par);
    
    int main ()
    {
       unsigned long sec;
    
    
       getSeconds( &sec );
    
       /* 输出实际值 */
       printf("Number of seconds: %ld
    ", sec );
    
       return 0;
    }
    
    void getSeconds(unsigned long *par)
    {
       /* 获取当前的秒数 */
       *par = time( NULL );
       return;
    }
    

    当上面的代码被编译和执行时,它会产生下列结果:

    Number of seconds :1294450468
    

    能接受指针作为参数的函数,也能接受数组作为参数,如下所示:

    #include <stdio.h>
     
    /* 函数声明 */
    double getAverage(int *arr, int size);
     
    int main ()
    {
       /* 带有 5 个元素的整型数组  */
       int balance[5] = {1000, 2, 3, 17, 50};
       double avg;
     
       /* 传递一个指向数组的指针作为参数 */
       avg = getAverage( balance, 5 ) ;
     
       /* 输出返回值  */
       printf("Average value is: %f
    ", avg );
        
       return 0;
    }
    
    double getAverage(int *arr, int size)
    {
       int    i, sum = 0;       
       double avg;          
     
       for (i = 0; i < size; ++i)
       {
       	sum += arr[i];
       }
     
       avg = (double)sum / size;
     
       return avg;
    }
    

    **当上面的代码被编译和执行时,它会产生下列结果:
    **
    Average value is: 214.40000

  • 相关阅读:
    java线程池及创建多少线程合适
    消息队列消息积压了怎么办?
    Redis线程模型
    redis单线程如何支持高并发
    基于redis实现分布式锁
    PHP面试总结
    【转】Redis入门
    面试常考之二叉树
    计算机网络之面试常考
    操作系统之面试常考
  • 原文地址:https://www.cnblogs.com/JingWenxing/p/10263829.html
Copyright © 2011-2022 走看看