阅读(1018) (0)

C 函数示例

2017-01-10 21:39:19 更新

学习C - C函数示例

C中的声明函数可以写成如下

  void foo(){ 
      printf("foo() was called\n"); 
  } 

我们把这个函数放在main()函数上面。 然后,我们可以调用这个函数,forinstance foo()。


  #include <stdio.h> 
//w  w w. jav a  2 s  . com
  void foo(){ 
      printf("foo() was called\n"); 
  } 

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

    foo(); 
    return 0; 
  } 

上面的代码生成以下结果。



例子

我们还可以在main()函数的下面声明一个函数,但是我们必须声明我们的函数名。


  #include <stdio.h> 
/*from   www. ja v  a2  s . c om*/
  // implicit declaration for functions 
  void boo(); 

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

    boo(); 
    return 0; 
  } 

  void boo(){ 
      printf("boo() was called\n"); 
  } 

上面的代码生成以下结果。



带参数和返回值的函数

您可能需要创建一个具有参数和返回值的函数。

这很容易因为你只是调用return进入你的函数。


  #include <stdio.h> 
/*from   w  w  w . j a v  a2s  .c o  m*/
  // implicit declaration for functions 
  int add(int a, int b); 

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

    int result = add(10,5); 
    printf("result: %d\n",result); 

    return 0; 
  } 

  int add(int a, int b){ 
      return a + b; 
  } 

上面的代码生成以下结果。

数组参数的函数

我们也可以声明一个函数带有数组作为参数。

要知道数组大小,你的函数应声明数组大小。

将此代码写入程序以进行说明。


  #include <stdio.h> 
/*  ww w.j  ava 2s  .com*/
  // implicit declaration for functions 
  double mean(int numbers[],int size); 

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

    int numbers[8] = {8,4,5,1,4,6,9,6}; 
    double ret_mean = mean(numbers,8); 
    printf("mean: % .2f\n",ret_mean); 

    return 0; 
  } 

  double mean(int numbers[],int size){ 
      int i, total = 0; 
      double temp; 

      for (i = 0; i < size; ++i){ 
          total += numbers[i]; 
      } 

      temp = (double)total / (double)size; 
      return temp; 
  } 

上面的代码生成以下结果。

函数参数指针

我们可以将指针作为参数传递给我们的函数。

为了说明,我们可以创建swap()交换我们的价值观。


  #include <stdio.h> 
/*w  w  w . ja va  2 s .c om*/
  // implicit declaration for functions 
  void swap(int *px, int *py); 

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

    int *x, *y; 
    int a, b; 

    a = 10; 
    b = 5; 

    // set value 
    x = &a; 
    y = &b; 

    printf("value pointer x: %d \n",*x); 
    printf("value pointer y : %d \n",*y); 

    swap(x,y); 
    printf("swap()\n"); 
    printf("value pointer x: %d \n",*x); 
    printf("value pointer y : %d \n",*y); 
    return 0; 
  } 

  void swap(int *px, int *py){ 
      int temp; 

      // store pointer px value to temp 
      temp = *px; 
      // set pointer px by py value 
      *px = *py; 
      // set pointer py by temp value 
      *py = temp; 
  } 

上面的代码生成以下结果。