スキャンのためのフォーマット指定子 long unsigned int
次のコードで2つの変数を入力として取ろうとしています:-)
unsigned int i;
unsigned long int j;
scanf("%u",i);
scanf("%lu",j);
しかし、これは次のような警告を発生させます:-)
警告: フォーマット '%u' は 'unsigned int ' 型の引数を予期していますが、引数 2 は 'unsigned int' 型です [-Wformat] 。 警告: フォーマット '%lu' は 'long unsigned int ' 型の引数を予期していますが、引数 2 は 'long unsigned int' 型です [-Wformat]-Warning: フォーマット '%lu' は 'long unsigned int *' 型の引数を予期しています。 どなたか、ここで何が起こっているのか説明していただけませんか?
11
1
scanf
は出力パラメータへの *ポインタ* を取るので、先頭の
&` を追加する必要があります。そうでなければ、出力パラメータに書き込むことができません。