Board logo

標題: C is call by value [打印本頁]

作者: sjgau    時間: 2013-11-13 08:55     標題: C is call by value

what is call by value,

必須以實際的例子作為 介紹
作者: handsometrowa    時間: 2013-11-13 09:16

回復 1# sjgau


   板大

我通常發生問題,都會先來這裡看一遍說明,通常這裡都會含有程式碼可以研究

我查了一下  傳址呼叫與傳值呼叫的原文

請參閱

http://www.cpearson.com/excel/byrefbyval.aspx
作者: sjgau    時間: 2013-11-13 09:25

回復  sjgau


   板大

我通常發生問題,都會先來這裡看一遍說明,通常這裡都會含有程式碼可以研究
...
handsometrowa 發表於 2013-11-13 09:16
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. // ----------------------------------------------

  4. void swap_int(int a, int b)
  5. {
  6.    printf("\n 副程式,交換之前: a= %d, b= %d \n", a, b);
  7.    system("pause");
  8.    // -------------------------------------------
  9.    
  10.    int c= a;
  11.    a= b;
  12.    b= c;
  13.    printf("\n 副程式,交換之後: a= %d, b= %d \n", a, b);
  14.    system("pause");
  15. }// end of swap_int()
  16. // ----------------------------------------------
  17.      
  18. int main(int argc, char *argv[])
  19. {
  20.    int a, b, c;
  21.    srand(time(NULL));
  22.    a= rand()%1000;
  23.    b= rand()%1000;

  24.    printf("\n 主程式,交換之前: a= %d, b= %d \n", a, b);
  25.    system("pause");
  26.    // -------------------------------------------
  27.    
  28.    swap_int(a, b);
  29.    
  30.    printf("\n 主程式,交換之後: a= %d, b= %d \n", a, b);
  31.    system("pause");
  32.    // -------------------------------------------
  33.    
  34.    return 0;
  35. }
複製代碼

作者: sjgau    時間: 2013-11-13 09:35

  1. // call by reference 的版本
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. // ----------------------------------------------

  5. void swap_int(int *a, int *b)
  6. {
  7.    printf("\n 副程式,交換之前: a= %d, b= %d \n", *a, *b);
  8.    system("pause");
  9.    // -------------------------------------------
  10.    
  11.    int c= *a;
  12.    *a= *b;
  13.    *b= c;
  14.    printf("\n 副程式,交換之後: a= %d, b= %d \n", *a, *b);
  15.    system("pause");
  16. }// end of swap_int()
  17. // ----------------------------------------------
  18.      
  19. int main(int argc, char *argv[])
  20. {
  21.    int a, b, c;
  22.    srand(time(NULL));
  23.    a= rand()%1000;
  24.    b= rand()%1000;

  25.    printf("\n 主程式,交換之前: a= %d, b= %d \n", a, b);
  26.    system("pause");
  27.    // -------------------------------------------
  28.    
  29.    swap_int(&a, &b);
  30.    
  31.    printf("\n 主程式,交換之後: a= %d, b= %d \n", a, b);
  32.    system("pause");
  33.    // -------------------------------------------
  34.    
  35.    return 0;
  36. }
複製代碼

作者: handsometrowa    時間: 2013-11-13 10:06

回復 4# sjgau


    板大,這個不是C語言的寫法嗎@@?
作者: sjgau    時間: 2013-11-13 10:09

回復  sjgau


    板大,這個不是C語言的寫法嗎@@?
handsometrowa 發表於 2013-11-13 10:06



    是啊
我比較習慣 使用 C




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)