【发布时间】:2021-10-22 20:58:27
【问题描述】:
我最近了解到if statements 可用于在 C++ 中声明变量。我个人并不真正了解其背后的原因。
if statements 不应该只检查条件是否正确,并且声明变量会导致错误吗?
也就是说,据我所知,if statements 只能比较两个单独的值。所以在if statement 中声明任何东西真的没有意义,因为你没有比较任何东西。
原帖:
为什么 c++ 编译器会接受这个:
#include <iostream>
int Test()
{
return 10;
}
int main()
{
if (int n = Test())
{
std::cout << "hi";
}
}
更具体地说:为什么 if (int n = Test()) 是一个有效的语句?
【问题讨论】:
-
我可以补充一点吗?
-
本地声明
n到仅包含if逻辑块的生命周期。 -
把它想象成
if ((n = test()) != 0) -
你在这里真的问了两个问题: 1. 为什么你可以这样定义和初始化一个变量?和 2. 假设你可以,为什么有这种说法有意义。你得到的只是这两个问题之一的一些答案。仅供参考。
-
考虑
if (n = test()) { cout << "hi, I'm the result of test() " << n; }。n只在块的生命周期内存在,你不需要调用test()两次。
标签: c++ function if-statement syntax