0

演算子の優先順位について混乱しており、このステートメントがどのように評価されるかを知りたいです。

# include <stdio.h>

int main()
{
  int k=35;  
  printf("%d %d %d",k==35,k=50,k>40);  
  return 0;  
}

私が思うにテストしてkいるとき、これは最初に値35を持っています:kprintf

  1. k>40結果が 0 になるようにチェックする必要があります
  2. k==35チェックする必要があり、結果は 1 になります
  3. 最後に 50 が割り当てられk、どちらが 50 を出力する必要があります

したがって、最終出力は のはずですが1 50 0、出力は0 50 1です。

4

3 に答える 3

0

関数の引数が評価される順序は指定されていません。それらは任意の順序で評価できます。コンパイラが決定します。

于 2013-08-14T12:28:03.500 に答える