プログラミング方法論 II 第 6 回(担当:鈴木伸夫) 今日のキーワード:ポインタと関数引数 (重要)C 言語は一度に「ひとつの数字」しか伝えることができない。 関数の出力は「1 つの値、または 0(void)」 名前空間が違うので関数の中と外では同じ値を使えない。 整数 a と整数 b を入力で与えると、それぞれの値を交換する swap()関数を作成す るとき、 void swap(int a, int b);ではうまくいかない。 引数で渡す変数の値を変化させたい場合は、引数に変数のポインタを使用する。 void swap(int *a, int *b); 呼出側では swap(&a,&b)のようにアドレスを渡して関数を呼び出す。 配列名は既にアドレスを意味しているため、自動的にポインタと同じ扱いになる。 関数の引数の宣言では、以下の 3 つは全て同じになる int a[] int *a int a[10] //この場合、10 は無視される swap()関数を使用した例 void swap(int *a, int *b){ int tmp = *a; *a = *b; *b = tmp; } int main(){ int a=5; int b=3; swap(&a,&b); return 0; } 今日のチェック問題(プログラミング方法論 II 学籍番号 第 6 回)授業終了時に提出 名前 1. 分と秒を引数として与えると、一秒後の値を分と秒にセットする関数を作成 せよ。 2. 二つの整数 a,b を引数として与えると、a>=b の場合はそのまま、a<b の場合 は a と b の値を入れ替える関数を作成せよ。 3. この講義に期待すること、本日の感想などを自由に述べてください。 レポート課題(プログラミング方法論 II 学籍番号 第 6 回)第 7 回授業開始時までに提出 名前 1. 時間と分と秒を与えると、一秒後の値を時間と分と秒にセットする関数を作 成せよ。 2. 3 つの整数 a,b,c を渡すと、a に一番大きな値、b に次に大きな値、c に一番小 さい値を代入して入れ替える関数を作成せよ。 3. 配列 a[ ] と配列の大きさ num、倍数 mlt を引数として渡すと、配列 a[ ]の全 ての値を mlt 倍して a[ ] にセットする関数を作成せよ。
© Copyright 2024 ExpyDoc