扫描long unsigned int的格式说明符

时间:2012-08-27 18:19:59

标签: c scanf

我试图使用此代码片段将两个变量作为输入: -

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] 任何人都可以向我解释这里发生的事情吗?

1 个答案:

答案 0 :(得分:22)

您需要添加一个前导&,因为scanf指针添加到输出参数中。否则,它无法写入它们。

scanf("%lu", &i);