为什么不能将 scanf() 与变量放在同一行? [已关闭]

问题描述 投票:0回答:1

例如:

int number = scanf("%d", &number);
c scanf
1个回答
2
投票

scanf
的返回值是分配的项目数。因此,成功后,
scanf("%d", &number)
返回1。然后
int number = scanf("%d", &number);
表示将
number
初始化为1。这不是你想要的。

int number = scanf("%d", &number);
还告诉
scanf
将输入转换为十进制数字的结果存储在
number
中。存储转换结果还是存储返回值,哪个先发生?解释这个会导致 C 标准陷入混乱。不值得弄清楚这一点,因为你不应该编写这样的代码。

© www.soinside.com 2019 - 2024. All rights reserved.