我最近注意到可以验证变量的存在(例如指针类型在C中),然后,验证该变量内部的元素(例如在同一控制流中取消引用指针(例如 if语句)。
在注意之前
if (my_array)
{
if (my_array[n])
{
//Do something
}
}
注意到
if (my_array
&& my_array[n])
{
//Do something
}
我对这种行为感到有些惊讶,我使用 valgrind 来查看系统在程序执行过程中是否与我“亲切”,但 valgrind 很直,说我已经
了错误摘要:来自0个上下文的0个错误。
所以我想知道编译器是否只引用运算符,以便创建一种流程图,或者它是另一种类型的评估。每个编译器都使用相同类型的行为吗?