返回列表 發帖

指標 (八) - 參數傳遞

本帖最後由 tonyh 於 2014-9-20 16:48 編輯

利用傳遞變數指標的方式,將參數由主函式傳遞至自訂函式.
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. void swap(int *, int *);
  5. int main()
  6. {
  7.      int x=10, y=5;
  8.      cout<<"[對調前]"<<endl;
  9.      cout<<"x="<<x<<endl;
  10.      cout<<"y="<<y<<endl;
  11.      cout<<"變數x的位址: "<<&x<<endl;
  12.      cout<<"變數y的位址: "<<&y<<endl<<endl;
  13.      swap(&x,&y);
  14.      cout<<"[對調後]"<<endl;
  15.      cout<<"x="<<x<<endl;
  16.      cout<<"y="<<y<<endl;
  17.      cout<<"變數x的位址: "<<&x<<endl;
  18.      cout<<"變數y的位址: "<<&y<<endl<<endl;
  19.      system("pause");
  20.      return 0;
  21. }
  22. void swap(int *a, int *b)
  23. {
  24.      int tmp;
  25.      tmp=*a;
  26.      *a=*b;
  27.      *b=tmp;   
  28. }
複製代碼

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. void swap(int*,int*);
  5. int main()
  6. {
  7.      int x=10, y=5;
  8.      cout<<"[對調前]"<<endl;
  9.      cout<<"x="<<x<<endl;
  10.      cout<<"y="<<y<<endl;
  11.      cout<<"變數x的位址: "<<&x<<endl;
  12.      cout<<"變數y的位址: "<<&y<<endl<<endl;
  13.      swap(&x,&y);
  14.      cout<<"[對調後]"<<endl;
  15.      cout<<"x="<<x<<endl;
  16.      cout<<"y="<<y<<endl;
  17.      cout<<"變數x的位址: "<<&x<<endl;
  18.      cout<<"變數y的位址: "<<&y<<endl<<endl;
  19.      system("pause");
  20.      return 0;
  21. }
  22. void swap(int*a,int*b)
  23. {
  24.     int tmp;
  25.     tmp=*a;
  26.     *a=*b;
  27.     *b=tmp;
  28. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. void swap(int*,int*) ;
  5. int main()
  6. {
  7.      int x=10,y=5;
  8.       
  9.     cout<<"[對調前]"<<endl;
  10.     cout<<"x="<<x<<endl;
  11.     cout<<"y="<<y<<endl;
  12.     cout<<"變數x的位址: "<<&x<<endl;
  13.     cout<<"變數y的位址: "<<&y<<endl<<endl;
  14.    
  15.     swap(&x,&y);
  16.     cout<<"[對調後]"<<endl;
  17.     cout<<"x="<<x<<endl;
  18.     cout<<"y="<<y<<endl;
  19.     cout<<"變數x的位址: "<<&x<<endl;
  20.     cout<<"變數y的位址: "<<&y<<endl<<endl;

  21.      
  22.      system("pause");
  23.      return 0;
  24. }

  25. void swap(int* x,int* y)
  26. {
  27.         int tmp=*x;
  28.     *x=*y;
  29.     *y=tmp;       
  30.        
  31. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. void swap(int *, int *);
  5. int main()
  6. {
  7.     int x=10, y=5, tmp;
  8.     cout<<"[對調前]"<<endl;
  9.     cout<<"x="<<x<<endl;
  10.     cout<<"y="<<y<<endl;
  11.     cout<<"變數x的位址: "<<&x<<endl;
  12.     cout<<"變數y的位址: "<<&y<<endl;
  13.     swap(&x,&y);
  14.     cout<<"[對調後]"<<endl;
  15.     cout<<"x="<<x<<endl;
  16.     cout<<"y="<<y<<endl;
  17.     cout<<"變數x的位址: "<<&y<<endl;
  18.     cout<<"變數y的位址: "<<&x<<endl;
  19.     system("pause");  
  20.     return 0;        
  21. }
  22. void swap(int*a, int*b)
  23. {
  24.    int tmp;
  25.    tmp=*a;
  26.    *a=*b;
  27.    *b=tmp;     
  28. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. void swap(int *, int *);
  5. int main()
  6. {
  7.      int x=10, y=5, tmp;
  8.      cout<<"[對調前]"<<endl;
  9.      cout<<"x="<<x<<endl;
  10.      cout<<"y="<<y<<endl;
  11.      cout<<"變數x的位址: "<<&x<<endl;
  12.      cout<<"變數y的位址: "<<&y<<endl<<endl;
  13.      swap(&x,&y);
  14.      cout<<"[對調後]"<<endl;
  15.      cout<<"x="<<x<<endl;
  16.      cout<<"y="<<y<<endl;
  17.      cout<<"變數x的位址: "<<&x<<endl;
  18.      cout<<"變數y的位址: "<<&y<<endl<<endl;
  19.      system("pause");
  20.      return 0;
  21. }
  22. void swap(int *a, int *b)
  23. {
  24.      int tmp;
  25.      tmp=*a;
  26.      *a=*b;
  27.      *b=tmp;
  28. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. void swap(int *,int *);
  5. int main()
  6. {
  7.      int x=10, y=5, tmp;
  8.      cout<<"[對調前]"<<endl;
  9.      cout<<"x="<<x<<endl;
  10.      cout<<"y="<<y<<endl;
  11.      cout<<"變數x的位址: "<<&x<<endl;
  12.      cout<<"變數y的位址: "<<&y<<endl<<endl;
  13.      swap(&x,&y);
  14.      cout<<"[對調後]"<<endl;
  15.      cout<<"x="<<x<<endl;
  16.      cout<<"y="<<y<<endl;
  17.      cout<<"變數x的位址: "<<&x<<endl;
  18.      cout<<"變數y的位址: "<<&y<<endl<<endl;
  19.      system("pause");
  20.      return 0;
  21. }
  22. void swap(int *a,int *b)
  23. {
  24.      int tmp;
  25.      tmp=*a;
  26.      *a=*b;
  27.      *b=tmp;     
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. void swap(int *,int *);
  5. int main()
  6. {
  7.      int x=10, y=5;
  8.      cout<<"[對調前]"<<endl;
  9.      cout<<"x="<<x<<endl;
  10.      cout<<"y="<<y<<endl;
  11.      cout<<"變數x的位址: "<<&x<<endl;
  12.      cout<<"變數y的位址: "<<&y<<endl<<endl;
  13.      swap(&x,&y);
  14.      cout<<"[對調後]"<<endl;
  15.      cout<<"x="<<x<<endl;
  16.      cout<<"y="<<y<<endl;
  17.      cout<<"變數x的位址: "<<&x<<endl;
  18.      cout<<"變數y的位址: "<<&y<<endl<<endl;
  19.      system("pause");
  20.      return 0;
  21. }
  22. void swap(int *a, int *b)
  23. {
  24.      int tmp;
  25.      tmp=*a;
  26.      *a=*b;
  27.      *b=tmp;     
  28. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. void tmm(int*,int*);

  5. int main()
  6. {

  7.       int x=10, y=5;
  8.      cout<<"[對調前]"<<endl;
  9.      cout<<"x="<<x<<endl;
  10.      cout<<"y="<<y<<endl;
  11.      cout<<"變數x的位址: "<<&x<<endl;
  12.      cout<<"變數y的位址: "<<&y<<endl<<endl;
  13.      tmm(&x,&y);
  14.      cout<<"[對調後]"<<endl;
  15.      cout<<"x="<<x<<endl;
  16.      cout<<"y="<<y<<endl;
  17.      cout<<"變數x的位址: "<<&x<<endl;
  18.      cout<<"變數y的位址: "<<&y<<endl<<endl;
  19.      system("pause");
  20.      return 0;
  21. }
  22. void tmm(int*a,int*b)
  23. {
  24. int tmp;
  25.    tmp=*a;
  26.    *a=*b;
  27.    *b=tmp;

  28. }
  29.      
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. void swap(int*,int*);
  5. int main()
  6. {
  7.      int x=10, y=5, tmp;
  8.      cout<<"[對調前]"<<endl;
  9.      cout<<"x="<<x<<endl;
  10.      cout<<"y="<<y<<endl;
  11.      cout<<"變數x的位址: "<<&x<<endl;
  12.      cout<<"變數y的位址: "<<&y<<endl<<endl;
  13.      swap (&x,&y);
  14.      cout<<"[對調後]"<<endl;
  15.      cout<<"x="<<x<<endl;
  16.      cout<<"y="<<y<<endl;
  17.      cout<<"變數x的位址: "<<&x<<endl;
  18.      cout<<"變數y的位址: "<<&y<<endl<<endl;
  19.      system("pause");
  20.      return 0;
  21. }
  22.      void swap(int *a, int *b)               
  23. {
  24.      int tmp;
  25.      tmp=*a;
  26.      *a=*b;
  27.      *b=tmp;
  28. }
複製代碼

TOP

  1. #include <bits/stdc++.h>

  2. using namespace std;
  3. int mod = 1000000007, n;
  4. vector <int> dp;
  5. vector <int> coin;
  6. vector <int> visited;

  7. int aa(int x)
  8. {
  9.     if(visited[x])   return dp[x];
  10.     for(int i=0; i<n; i++)
  11.     {
  12.         if(coin[i]<=x)
  13.         {
  14.             dp[x] += aa(x-coin[i]);
  15.             dp[x]%=mod;
  16.         }
  17.     }

  18.     //cout << x << " " << dp[x] << endl;
  19.     visited[x]++;
  20.     return dp[x];
  21. }
  22. void sswap(int *, int *);
  23. int main()
  24. {
  25.     /*
  26.     int x;
  27.     cin >> n >> x;
  28.     dp.resize(x);
  29.     visited.resize(x);
  30.     coin.resize(n);
  31.     dp[0]++;
  32.     visited[0]++;
  33.     for(int i=0; i<n; i++)
  34.         cin >> coin[i];
  35.     cout << aa(x);
  36.     return 0;
  37.     */

  38.     int x = 1, y = 2;
  39.     cout<<"[對調前]"<<endl;
  40.     cout<<"x="<<x<<endl;
  41.     cout<<"y="<<y<<endl;
  42.     cout<<"變數x的位址: "<<&x<<endl;
  43.     cout<<"變數y的位址: "<<&y<<endl<<endl;
  44.     sswap(&x,&y);
  45.     cout<<"[對調後]"<<endl;
  46.     cout<<"x="<<x<<endl;
  47.     cout<<"y="<<y<<endl;
  48.     cout<<"變數x的位址: "<<&x<<endl;
  49.     cout<<"變數y的位址: "<<&y<<endl<<endl;
  50. }
  51. void sswap(int *a, int *b)
  52. {
  53.     swap(*a, *b);
  54. }
複製代碼

TOP

  1. #include <bits/stdc++.h>

  2. using namespace std;
  3. int mod = 1000000007, n;
  4. vector <int> dp;
  5. vector <int> coin;
  6. vector <int> visited;

  7. int aa(int x)
  8. {
  9.     if(visited[x])   return dp[x];
  10.     for(int i=0; i<n; i++)
  11.     {
  12.         if(coin[i]<=x)
  13.         {
  14.             dp[x] += aa(x-coin[i]);
  15.             dp[x]%=mod;
  16.         }
  17.     }

  18.     //cout << x << " " << dp[x] << endl;
  19.     visited[x]++;
  20.     return dp[x];
  21. }
  22. void sswap(int &, int &);
  23. int main()
  24. {
  25.     /*
  26.     int x;
  27.     cin >> n >> x;
  28.     dp.resize(x);
  29.     visited.resize(x);
  30.     coin.resize(n);
  31.     dp[0]++;
  32.     visited[0]++;
  33.     for(int i=0; i<n; i++)
  34.         cin >> coin[i];
  35.     cout << aa(x);
  36.     return 0;
  37.     */

  38.     int x = 1, y = 2;
  39.     cout<<"[對調前]"<<endl;
  40.     cout<<"x="<<x<<endl;
  41.     cout<<"y="<<y<<endl;
  42.     cout<<"變數x的位址: "<<&x<<endl;
  43.     cout<<"變數y的位址: "<<&y<<endl<<endl;
  44.     sswap(x, y);
  45.     cout<<"[對調後]"<<endl;
  46.     cout<<"x="<<x<<endl;
  47.     cout<<"y="<<y<<endl;
  48.     cout<<"變數x的位址: "<<&x<<endl;
  49.     cout<<"變數y的位址: "<<&y<<endl<<endl;
  50. }
  51. void sswap(int &x, int &y)
  52. {
  53.     swap(x, y);
  54. }
複製代碼

TOP

返回列表