私は最近コードに出くわしました
// ゼロ除算を克服するプログラム
int a=0;
int b=100;
int c= a==0 || b/a ;
printf("Hello");
// 出力 : こんにちは
私の理論: 優先順位によると、演算子 / は || よりも優先順位が高くなります。したがって、b/a を最初に実行する必要があり、実行時エラーが発生するはずです。
私は何が起こっていると思います:
短絡演算子 || 、LHS a==0 を評価します。これは真であり、したがって b/a を実行しません。
私の理論は間違っていますか?これは非常に単純なことであり、今は理解できないと確信しています