次の文の「変換された値ごとに」とはどういう意味ですか?
Q: 通話が機能しないのはなぜ
scanf("%d", i)
ですか?A: 渡す引数
scanf
は常にポインターでなければなりません:変換された各値に対して、scanf は、ポインターを渡した場所の 1 つを埋めることによってそれを「返します」。(質問 20.1も参照してください。) 上記のフラグメントを修正するには、 に変更しscanf("%d", &i)
ます。
scanf()
1 回の呼び出しで複数の値をスキャンできます。例えば:
int numConverted = scanf("%d %f %d", &myInt1, &myFloat, &myInt2);
注: ただし、戻り値を常に調べて、実際に変換された数を確認する必要があります。
scanf("%d", &i)
inputで実行すると123
、文字シーケンス123
は値に変換され、int
に格納されi
ます。
これは、キャストによって指定される型変換ではありませんが、「変換」と呼ぶのが妥当です。