(ch = getchar()) != '\n' ch = getchar() != '\n' 等价吗?
时间: 2023-06-24 21:03:11 浏览: 77
这两个语句不等价。
`(ch = getchar()) != '\n'` 的意思是先执行 `getchar()` 函数获取一个字符,再将获取到的字符赋值给变量 `ch`,然后将 `ch` 和 `\n` 进行比较,如果不相等,则条件成立。这个语句的作用是获取用户输入的字符,直到输入的字符为回车符为止。
而 `ch = getchar() != '\n'` 的意思是先执行 `getchar()` 函数获取一个字符,然后将获取到的字符与 `\n` 进行比较,得到一个布尔值(`true` 或 `false`),最后将布尔值赋值给变量 `ch`。这个语句的作用是将获取到的字符和 `\n` 进行比较,然后将比较结果(布尔值)存储到变量 `ch` 中。
因此,这两个语句的作用不同,结果也不同。
相关问题
for(;a=getchar!='\n';)
这是一个C语言中的for循环语句,它的循环条件部分没有设置循环变量和循环次数,因此它会一直循环下去,直到遇到换行符`\n`为止。在每次循环中,通过`getchar()`函数获取一个字符并赋值给变量a,然后判断该字符是否为换行符。如果不是,则继续循环执行;如果是,则跳出循环。这个循环可以用于读取用户从键盘输入的一行字符串,并将其存储到一个字符数组中。
C. for(;a=getchar!='\n';)
这段代码有一个小错误,应该是`a=getchar()`而不是`a=getchar`。正确的代码是:
```c
for(; (a = getchar()) != '\n'; ) {
// 循环体
}
```
这是一个C语言中的for循环语句,它的循环条件部分没有设置循环变量和循环次数,因此它会一直循环下去,直到遇到换行符`\n`为止。在每次循环中,通过`getchar()`函数获取一个字符并赋值给变量a,然后判断该字符是否为换行符。如果不是,则继续循环执行;如果是,则跳出循环。这个循环可以用于读取用户从键盘输入的一行字符串,并将其存储到一个字符数组中。
相关推荐
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)