CとC++での参照転送

704 ワード

2つのリファレンス伝達の定義方法
  • 第1種
    
    #include 
    void changeValue(int *a);
    int main(){
      int a =1;
      changeValue(&a);
      printf("%d",a);
    
      return 0;
    }
    
    void changeValue(int *a){
      *a=12;
    }
    Output
    12
    ここで実際に伝達されるのはポインタであり、パラメータ定義の際にdatatype*variableによってこのパラメータがポインタタイプであることを宣言する.もちろん、関数実装の際にもポインタの構文を用いてこの変数を修正したり、この変数の値を伝達したりする必要がある.
  • 第2種
    
    #include
    void changevalue(int &a);
    int main(){
      int a =1;
      changevalue(a);
      printf("%d",a);
      return 0;
    } 
    
    void changevalue(int &a){
      a=12;
    }
    Output
    12
  • この定義は、実際には&が機能し、この変数が値伝達ではなく参照伝達であることを示しています.