回答編集履歴

3

微修正

2021/08/07 00:27

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -2,9 +2,17 @@
2
2
 
3
3
 
4
4
 
5
+ 初期状態:
6
+
7
+
8
+
9
+ > str[] = "str == NULL ? \"(NULL)\": str"
10
+
11
+ char *p, *q; p = str; // p は str(の先頭)を指す
12
+
13
+
14
+
5
15
  ■ 一週目:
6
-
7
- str[] = "str == NULL ? \"(NULL)\": str"
8
16
 
9
17
 
10
18
 

2

微修正

2021/08/07 00:27

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -32,4 +32,6 @@
32
32
 
33
33
 
34
34
 
35
+ これ以降すなわち二週目以降、文字列は'\0'で終端されるため
36
+
35
- これ以降すなわち二週目以降、printf("%s", str) で得られる出力は "str == NULL "
37
+ printf("%s", str) で得られる出力は "str == NULL "

1

微修正

2021/08/06 02:24

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -12,19 +12,19 @@
12
12
 
13
13
 
14
14
 
15
- これにより、q は'?',':','\0' のいずれかを指す位置を指す
15
+ これにより、q は'?',':','\0' のいずれかを指す位置となる
16
16
 
17
- つまり "str == NULL **?** \"(NULL)\": str" の'?'を指す。
17
+ つまり qは "str == NULL **?** \"(NULL)\": str" の'?'を指す。
18
18
 
19
19
 
20
20
 
21
21
  > ch = *q;
22
22
 
23
- *q = 0;
23
+ ***q = 0**;
24
24
 
25
25
 
26
26
 
27
- これにより、'?' が '\0' に書き換えられる。
27
+ これにより、q の指す '?' が '\0' に書き換えられる。
28
28
 
29
29
 
30
30