扫描长无符号整数的格式说明符

11

我试图使用以下代码片段输入两个变量:

unsigned int i;

unsigned long int j;

scanf("%u",i);

scanf("%lu",j);

但是这会引起以下警告:

警告:格式“%u”需要类型为“unsigned int *”的参数,但第二个参数的类型为“unsigned int”[-Wformat] 警告:格式“%lu”需要类型为“long unsigned int *”的参数,但第二个参数的类型为“long unsigned int”[-Wformat] 有人可以解释一下这里发生了什么吗?

1个回答

23

你需要在前面加上一个引导符号 &,因为scanf函数需要指针来输出参数,否则它将无法向这些参数写入数据。

scanf("%lu", &i);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接