例如:
int number = scanf("%d", &number);
scanf
的返回值是分配的项目数。因此,成功后,scanf("%d", &number)
返回1。然后int number = scanf("%d", &number);
表示将number
初始化为1。这不是你想要的。
int number = scanf("%d", &number);
还告诉 scanf
将输入转换为十进制数字的结果存储在 number
中。存储转换结果还是存储返回值,哪个先发生?解释这个会导致 C 标准陷入混乱。不值得弄清楚这一点,因为你不应该编写这样的代码。