1

以下句子中的“对于每个转换的值”是什么意思?

问:为什么电话scanf("%d", i)打不通?

答:您传递给的参数scanf必须始终是指针:对于每个转换的值,scanf 通过填写您传递指针的位置之一来“返回”它。(另请参阅问题 20.1。)要修复上面的片段,请将其更改为scanf("%d", &i).

我在c-faq中找到了这个;这是问题 12.12

4

2 回答 2

2

scanf()可以在一次调用中扫描多个值。例如:

int numConverted = scanf("%d %f %d", &myInt1, &myFloat, &myInt2);

注意:您应该始终检查返回值以了解实际转换了多少。

于 2013-04-09T19:54:38.573 回答
2

如果scanf("%d", &i)使用 input执行123,则字符序列123转换为一个int值,该值存储在i.

这不是类型转换可能由强制转换指定的,但将其称为“转换”仍然是合理的。

于 2013-04-09T20:02:40.273 回答