11

我正在尝试使用此代码段将两个变量作为输入:-

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] 谁能向我解释这里发生了什么?

4

1 回答 1

23

您需要添加一个前导&,作为指向输出参数scanf的指针。否则,它不能写给他们。

scanf("%lu", &i);
于 2012-08-27T18:21:21.393 回答