最終更新:2017-04-03 (月) 16:58:03 (2573d)  

C言語/関数
Top / C言語 / 関数

値渡し

  • 引数で渡すことが出来るのは、あくまでも数値
    • 関数は、 呼び出し元の変数を直接変える事はできない
  • 関数を呼び出す時に変数を指定した場合には、変数に記憶されている値が、呼び出された関数の実引数にコピーされる
    void func(int a){
      a=10://呼び出し元には影響しない
    }

ポインタ渡し

void func(int* a){
  *a=10://int型のポインタのアドレスの値を10にする
}

C言語/配列

  • 配列自体は値渡しされない(配列の先頭のアドレスが値渡しされる)
  • 要素数は完全に無視される
  • 次の3つは同じ意味の仮引数宣言
    int hoge(int data[10]);
    int hoge(int data[]);//これが推奨
    int hoge(int *data);

C言語/構造体

  • 構造体型の引数は、受け取る側の関数に全ての値がコピーされます

関連