在括号中设置变量是如何工作的? 我找到了一段代码,我正在调试,看起来好像我不理解如何一个while循环完全在C++上工作。看一看: while (_content_len == 0 && _remain_data_size > 0 && (index = onSearchPacketTail(ptr,_remain_data_size)) != nullptr) { std::cout << "hello" << std::endl; } while(\u content\u len==0&&&u resident\u data\u size>0&&(index=onSearchPacketTail(ptr,\u resident\u data\u size))!=nullptr){ 标准::cout

在括号中设置变量是如何工作的? 我找到了一段代码,我正在调试,看起来好像我不理解如何一个while循环完全在C++上工作。看一看: while (_content_len == 0 && _remain_data_size > 0 && (index = onSearchPacketTail(ptr,_remain_data_size)) != nullptr) { std::cout << "hello" << std::endl; } while(\u content\u len==0&&&u resident\u data\u size>0&&(index=onSearchPacketTail(ptr,\u resident\u data\u size))!=nullptr){ 标准::cout,c++,C++,在括号中设置变量是如何工作的 括号的工作原理与它们在数学中的工作原理相似。括号内的运算符的优先级高于括号外的运算符 如果我在输出中看到10个hello,onSearchPacketTail是否真的被调用了10次 是的,这可能是真的。不,这不一定是真的 如果函数返回空指针,则不会有相应的“hello”,因此函数将被调用更多次 否则,如果函数从不返回null,并且这是程序中唯一一个“hello”的部分插入到输出流中,如果这是程序中唯一调用onSearchPacketTail的部分,并且程序没有过早终

在括号中设置变量是如何工作的

括号的工作原理与它们在数学中的工作原理相似。括号内的运算符的优先级高于括号外的运算符

如果我在输出中看到10个hello,onSearchPacketTail是否真的被调用了10次

是的,这可能是真的。不,这不一定是真的

如果函数返回空指针,则不会有相应的“hello”,因此函数将被调用更多次


否则,如果函数从不返回null,并且这是程序中唯一一个“hello”的部分插入到输出流中,如果这是程序中唯一调用
onSearchPacketTail
的部分,并且程序没有过早终止,则每个的数目将相等。

这只是一个规则赋值,恰好发生在表达式中,而不是自身。它将仅在该逻辑终止时执行由于短路评估,需要对al branch进行评估。如果它进入该循环,那么它必须进行评估,所以是的,评估了10次。如果您看到hello 10次,那么该函数被调用并返回有效指针10次。如果没有看到该函数,我无法解释为什么您可能无法从其中看到日志。您应该能够跟踪使用调试器将其插入函数中。