为什么不能将scanf()与变量命名放在同一行?

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

例如; int 数字 = scanf("%d", &number);

c scanf
1个回答
0
投票

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.