无效指针的条件 无效指针是指向当前程序不能访问的指针指针,如果尝试使用无效指针,则OS将阻止它发生,在C++入门2章中说
将无效指针用作条件或在比较中使用是未定义的无效指针的条件 无效指针是指向当前程序不能访问的指针指针,如果尝试使用无效指针,则OS将阻止它发生,在C++入门2章中说,c++,C++,将无效指针用作条件或在比较中使用是未定义的 但我只是尝试比较指针,而不是去引用它们,如何解释C++中的句子? < p>底漆说行为是不确定的。< /P> 在大多数情况下,不定义行为是因为说出任何其他内容(如比较无效指针返回false)将意味着性能成本(额外内存、额外检查)。这并不意味着比较不会返回结果。这意味着编译器在这一点上可以做任何它想做的事情(包括) 由于编译器可以在这种情况下执行任何操作,因此它可以假设两个指针都有效,并跳过对它们周围有效性的检查。它可以假设结果是它允许它删除大部分代码的任
<>但我只是尝试比较指针,而不是去引用它们,如何解释C++中的句子? < p>底漆说行为是不确定的。< /P> 在大多数情况下,不定义行为是因为说出任何其他内容(如比较无效指针返回false)将意味着性能成本(额外内存、额外检查)。这并不意味着比较不会返回结果。这意味着编译器在这一点上可以做任何它想做的事情(包括) 由于编译器可以在这种情况下执行任何操作,因此它可以假设两个指针都有效,并跳过对它们周围有效性的检查。它可以假设结果是它允许它删除大部分代码的任何结果(如果您在if中使用它) 此外,既然在这一点上没有人能告诉你比较的结果是什么,怎么会有人认为这个程序是正确的(也就是说它会做你说它应该做的事情) 因此:
- 你能比较无效指针吗?当然
- 结果稳定吗?可能不会
- 这会崩溃吗?也许吧
- 你应该在程序中使用它吗?不,无论如何都要避免