入力

これまでは、変数に値を代入する場合、ソースに代入処理を書いていましたが、
今回は、ユーザが変数に自由に値を代入する方法をやってみましょう。

01:#include <stdio.h>
02:
03:int main()
04:{
05:  int val;
06:  printf("好きな数字を入力してください : ");
07:  scanf("%d",&val);
08:  printf("val=%d\n",val);
09:  return 0;
10:}

------------------------------
実行結果(太字はユーザの入力)
------------------------------
好きな数字を入力してください : 45
val=45

6行目でユーザが変数valに値を代入する処理が行われます。
実際にはライブラリ関数のscanf関数を呼び出しています。

scanf関数の引数はprintf関数とそっくりですが、変数の前にアドレス演算子(&)が付いています。
アドレス演算子を付けると、その変数のメモリ上のアドレスが返されます。
はっきり言って、現状でこの言葉の意味を理解するのはかなり難しいと思うので簡単に説明します。

変数をロッカー、その値をロッカーの中身と考えてください。
その場合、変数の値を表示するにはロッカーの中身が必要ですが、
変数に値を代入する場合、ロッカーの位置を知らせる必要があります。
アドレス演算子はどのロッカーかを教えるために使います。

scanf関数はいろいろな使い方があるのですが、
ただ単に、変数に整数を代入するだけなら、次の通りにすればできます。

scanf("%d",&変数名);

まあ、ここでは上の使い方を覚えたら十分でしょう。