最終更新:2017-04-03 (月) 16:58:03 (2552d)
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言語/構造体
- 構造体型の引数は、受け取る側の関数に全ての値がコピーされます