C 函數(shù)示例

2018-05-19 19:39 更新

學(xué)習(xí)C - C函數(shù)示例

C中的聲明函數(shù)可以寫成如下

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

我們把這個(gè)函數(shù)放在main()函數(shù)上面。 然后,我們可以調(diào)用這個(gè)函數(shù),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; 
  } 

上面的代碼生成以下結(jié)果。



例子

我們還可以在main()函數(shù)的下面聲明一個(gè)函數(shù),但是我們必須聲明我們的函數(shù)名。


  #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"); 
  } 

上面的代碼生成以下結(jié)果。



帶參數(shù)和返回值的函數(shù)

您可能需要?jiǎng)?chuàng)建一個(gè)具有參數(shù)和返回值的函數(shù)。

這很容易因?yàn)槟阒皇钦{(diào)用return進(jìn)入你的函數(shù)。


  #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; 
  } 

上面的代碼生成以下結(jié)果。

數(shù)組參數(shù)的函數(shù)

我們也可以聲明一個(gè)函數(shù)帶有數(shù)組作為參數(shù)。

要知道數(shù)組大小,你的函數(shù)應(yīng)聲明數(shù)組大小。

將此代碼寫入程序以進(jìn)行說(shuō)明。


  #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; 
  } 

上面的代碼生成以下結(jié)果。

函數(shù)參數(shù)指針

我們可以將指針作為參數(shù)傳遞給我們的函數(shù)。

為了說(shuō)明,我們可以創(chuàng)建swap()交換我們的價(jià)值觀。


  #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; 
  } 

上面的代碼生成以下結(jié)果。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)