Latest web development tutorials

C-Zeiger wird an die Funktion übergeben

C Pointer C Pointer

C-Sprache ermöglicht es Ihnen, einen Zeiger auf eine Funktion zu übergeben, müssen Sie einfach eine Funktion Parameter deklarieren ist ein Zeiger auf den Typ.

Die folgenden Beispiele geben wir einen unsigned long Zeiger auf eine Funktion, und den Wert in der Funktion zu ändern:

#include <stdio.h>
#include <time.h>
 
void getSeconds(unsigned long *par);

int main ()
{
   unsigned long sec;


   getSeconds( &sec );

   /* 输出实际值 */
   printf("Number of seconds: %ld\n", sec );

   return 0;
}

void getSeconds(unsigned long *par)
{
   /* 获取当前的秒数 */
   *par = time( NULL );
   return;
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

Number of seconds :1294450468

Akzeptieren Zeiger als Argument einer Funktion, sondern übernimmt auch ein Array als Parameter, wie folgt:

#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\n", 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;
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

Der Durchschnittswert ist: 214,40000

C Pointer C Pointer