teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

修正

2017/04/30 02:14

投稿

strike1217
strike1217

スコア651

title CHANGED
File without changes
body CHANGED
@@ -22,9 +22,9 @@
22
22
  下のプログラムの例がなんでそうなるのか分かりません。
23
23
 
24
24
  [追記]
25
- ```C++
25
+
26
26
  ++x || ++y && ++z;
27
- ```
27
+
28
28
  ++x が評価され、残りは無視されると思いますが、
29
29
  **一番最初の評価対象**が、なぜ```++x```になっているのでしょうか??
30
30
  これは、結合規則は、右からですよね?

3

追記

2017/04/30 02:14

投稿

strike1217
strike1217

スコア651

title CHANGED
File without changes
body CHANGED
@@ -22,7 +22,7 @@
22
22
  下のプログラムの例がなんでそうなるのか分かりません。
23
23
 
24
24
  [追記]
25
- ```
25
+ ```C++
26
26
  ++x || ++y && ++z;
27
27
  ```
28
28
  ++x が評価され、残りは無視されると思いますが、

2

追記

2017/04/30 02:14

投稿

strike1217
strike1217

スコア651

title CHANGED
File without changes
body CHANGED
@@ -19,4 +19,14 @@
19
19
  ```
20
20
  全て演算子がバラバラなので、結合規則は関係ありませんよね?
21
21
 
22
- 下のプログラムの例がなんでそうなるのか分かりません。
22
+ 下のプログラムの例がなんでそうなるのか分かりません。
23
+
24
+ [追記]
25
+ ```
26
+ ++x || ++y && ++z;
27
+ ```
28
+ ++x が評価され、残りは無視されると思いますが、
29
+ **一番最初の評価対象**が、なぜ```++x```になっているのでしょうか??
30
+ これは、結合規則は、右からですよね?
31
+
32
+ こちらは、どうなっているのでしょうか??

1

修正

2017/04/30 01:43

投稿

strike1217
strike1217

スコア651

title CHANGED
File without changes
body CHANGED
@@ -1,20 +1,20 @@
1
1
  ```ここに言語を入力
2
2
  b = 100;
3
3
 
4
- a = b++; // b = b + 1; a = b;
4
+ a = ++b; // b = b + 1; a = b;
5
- c = ++b; // c = b; b = b + 1;
5
+ c = b++; // c = b; b = b + 1;
6
6
  ```
7
7
 
8
8
  これって変じゃないですか?
9
9
  演算子の順序は、```後置++``` < ```前置++``` < ```代入=```
10
10
  ```
11
- a = b++;
11
+ a = ++b;
12
12
  b = b + 1; a = b;
13
13
  こちらは、問題ないですよね・・・
14
14
  ```
15
15
  #一方は、なんで**代入が優先されている**のでしょうか??
16
16
  ```
17
- c = ++b;
17
+ c = b++;
18
18
  c = b; b = b + 1;
19
19
  ```
20
20
  全て演算子がバラバラなので、結合規則は関係ありませんよね?