0

谁能帮我弄清楚这些功能是如何工作的。
有两段代码 - 有和没有while 循环

#include <stdio.h>
int main(void) 
{
char z;
z = getchar();
putchar (z);
}

第二个是

#include <stdio.h>
int main(void)
{
char z;
while (z != '.')
{
z = getchar();
putchar(z);
}
}


问题是第一个工作正常,而第二个返回它获得的所有字符(例如,如果输入是2222,则函数返回2222)。为什么不返回2

4

1 回答 1

0

两个版本不同。

在第一个版本中,您阅读char并编写单曲。

在第二个中,您继续阅读 achar并编写它,直到chara 是一个句点。请注意,期间将被读取和写入。仅忽略以下传递。不过,有一个警告。您没有初始化z. 根据编译器,它可能会自动初始化为 \0。否则,您将面临未定义的行为。

于 2016-10-16T21:05:45.900 回答