回答編集履歴

3

微修正

2021/08/08 02:52

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  2
16
16
 
17
- >!(*q == '?' || *q == ':' || *q == 0);を(*q == '?' || *q == ':' || *q == 0);とした場合、画像のようなエラーが出るのですが、なぜでしょうか?
17
+ > !(*q == '?' || *q == ':' || *q == 0);を(*q == '?' || *q == ':' || *q == 0);とした場合、画像のようなエラーが出るのですが、なぜでしょうか?
18
18
 
19
19
 
20
20
 

2

修正

2021/08/08 02:51

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -1,4 +1,4 @@
1
- 1.
1
+ 1
2
2
 
3
3
  > for (q = p; !(*q == '?' || *q == ':' || *q == 0); q++);
4
4
 
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- 2.
15
+ 2
16
16
 
17
17
  >!(*q == '?' || *q == ':' || *q == 0);を(*q == '?' || *q == ':' || *q == 0);とした場合、画像のようなエラーが出るのですが、なぜでしょうか?
18
18
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- 3.
29
+ 3
30
30
 
31
31
  > これはバグということでかたずけていいでしょうか?
32
32
 

1

修正

2021/08/08 02:51

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -15,3 +15,21 @@
15
15
  2.
16
16
 
17
17
  >!(*q == '?' || *q == ':' || *q == 0);を(*q == '?' || *q == ':' || *q == 0);とした場合、画像のようなエラーが出るのですが、なぜでしょうか?
18
+
19
+
20
+
21
+ 「*q が '?', ':', '\0' のいずれか」**である** 間 loopを繰り返すのだから、
22
+
23
+ loopを抜けた時点で *q は '?', ':', '\0' ではない。
24
+
25
+ したがって if (ch == 0) break; によって 外側のloop:for(;;) ... を抜けることができない。
26
+
27
+
28
+
29
+ 3.
30
+
31
+ > これはバグということでかたずけていいでしょうか?
32
+
33
+
34
+
35
+ それが期待する動作であるなら、バグではない。如何なる動作を期待していたのか?