int* ptr;
//ptr may points to any location(e.g. nullptr)
if(ptr != nullptr && *ptr != 1) {
//A
} else {
//B
}
上記のコードは常に次のコードと同等ですか?
if(ptr != nullptr) {
if(*ptr != 1) {
//A
} else {
//B
}
} else {
//B
}
このルールは標準なのか実装定義なのか、最初のコードは移植可能ですか?