回答編集履歴
3
微修正
answer
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
「*q が '?', ':', '\0' のいずれか」となった時点でloopを抜ける。
|
|
7
7
|
|
|
8
8
|
2
|
|
9
|
-
>!(*q == '?' || *q == ':' || *q == 0);を(*q == '?' || *q == ':' || *q == 0);とした場合、画像のようなエラーが出るのですが、なぜでしょうか?
|
|
9
|
+
> !(*q == '?' || *q == ':' || *q == 0);を(*q == '?' || *q == ':' || *q == 0);とした場合、画像のようなエラーが出るのですが、なぜでしょうか?
|
|
10
10
|
|
|
11
11
|
「*q が '?', ':', '\0' のいずれか」**である** 間 loopを繰り返すのだから、
|
|
12
12
|
loopを抜けた時点で *q は '?', ':', '\0' ではない。
|
2
修正
answer
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
1
|
|
1
|
+
1
|
|
2
2
|
> for (q = p; !(*q == '?' || *q == ':' || *q == 0); q++);
|
|
3
3
|
の!(*q == '?' || *q == ':' || *q == 0);において、なぜ'?'、':'、 0を否定しているのにchには'?'、':'、 0が代入され、内部処理が働くのでしょうか?
|
|
4
4
|
|
|
5
5
|
「*q が '?', ':', '\0' のいずれか」**ではない** 間 loopを繰り返すのだから、
|
|
6
6
|
「*q が '?', ':', '\0' のいずれか」となった時点でloopを抜ける。
|
|
7
7
|
|
|
8
|
-
2
|
|
8
|
+
2
|
|
9
9
|
>!(*q == '?' || *q == ':' || *q == 0);を(*q == '?' || *q == ':' || *q == 0);とした場合、画像のようなエラーが出るのですが、なぜでしょうか?
|
|
10
10
|
|
|
11
11
|
「*q が '?', ':', '\0' のいずれか」**である** 間 loopを繰り返すのだから、
|
|
12
12
|
loopを抜けた時点で *q は '?', ':', '\0' ではない。
|
|
13
13
|
したがって if (ch == 0) break; によって 外側のloop:for(;;) ... を抜けることができない。
|
|
14
14
|
|
|
15
|
-
3
|
|
15
|
+
3
|
|
16
16
|
> これはバグということでかたずけていいでしょうか?
|
|
17
17
|
|
|
18
18
|
それが期待する動作であるなら、バグではない。如何なる動作を期待していたのか?
|
1
修正
answer
CHANGED
|
@@ -6,4 +6,13 @@
|
|
|
6
6
|
「*q が '?', ':', '\0' のいずれか」となった時点でloopを抜ける。
|
|
7
7
|
|
|
8
8
|
2.
|
|
9
|
-
>!(*q == '?' || *q == ':' || *q == 0);を(*q == '?' || *q == ':' || *q == 0);とした場合、画像のようなエラーが出るのですが、なぜでしょうか?
|
|
9
|
+
>!(*q == '?' || *q == ':' || *q == 0);を(*q == '?' || *q == ':' || *q == 0);とした場合、画像のようなエラーが出るのですが、なぜでしょうか?
|
|
10
|
+
|
|
11
|
+
「*q が '?', ':', '\0' のいずれか」**である** 間 loopを繰り返すのだから、
|
|
12
|
+
loopを抜けた時点で *q は '?', ':', '\0' ではない。
|
|
13
|
+
したがって if (ch == 0) break; によって 外側のloop:for(;;) ... を抜けることができない。
|
|
14
|
+
|
|
15
|
+
3.
|
|
16
|
+
> これはバグということでかたずけていいでしょうか?
|
|
17
|
+
|
|
18
|
+
それが期待する動作であるなら、バグではない。如何なる動作を期待していたのか?
|