如果传入空指针,以下代码是否安全?if(ptr && *ptr == value) { //do something } 支票的顺序重要吗?如果我将其更改为此可以吗?if(*ptr == value && ptr) { //do something } 最佳答案 前者是正确和安全的,后者则不是。内置的&&运算符具有短路语义,这意味着当且仅当第一个为true时,才对第二个参数求值。(对于重载运算符,情况并非如此。)