Ubuntuで次のコマンドを打ち込んだのですが、結果が予想と違いました。
if 内のj=kの時点で既に偽なので&&演算子は成り立たない。よってelse文に移り、-(i+j)の値は-15となり、それをkの値にかけてk=-30になる。よってそれぞれの返り値は i=5, j=10, k=-30と予想したのですが、実際の出力値はi=4, j=5, k=3 でした。
なぜこうなるのか、どなたかご教授よろしくお願いいたします。
以下がコードです。
#include<stdio.h> int main() { int i=5, j=10, k=2; if(j = k && i != j) { k += j; j += --i; } else k *= -(i + j); printf("i=%d\t j=%d\t k=%d\n", i,j,k); return 0; }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/06 10:58
2021/10/09 12:17
2021/10/10 05:48
2021/10/10 07:32