回答編集履歴

2

加筆

2016/04/22 10:56

投稿

majiponi
majiponi

スコア1720

test CHANGED
@@ -38,4 +38,6 @@
38
38
 
39
39
  これは、「「文字列の先頭」が入っているポインタ変数」のアドレスを意味します。
40
40
 
41
+ 大事なことなのでもう一度言います、str+iは、「ポインタ変数」のアドレスを意味します。
42
+
41
43
  なので、```printf("%s", str+i);```と書くとクラッシュするのです。

1

誤字の修正

2016/04/22 10:56

投稿

majiponi
majiponi

スコア1720

test CHANGED
@@ -24,11 +24,15 @@
24
24
 
25
25
  1行目は%p、「何か」のアドレスを追加の引数にします、という意味です。
26
26
 
27
- 3行目は%s、「文字列の先頭」のアドレスを追加の引数て必要とします。
27
+ 3行目は%s、「文字列の先頭」のアドレスを追加の引数します、という意味です
28
+
29
+
28
30
 
29
31
  この例では、str[i]というのが「文字列の先頭」のアドレスを意味します。
30
32
 
31
33
  なので、```printf("%p", str[i]);```と書いても「アドレス」を渡しているので動作「は」します。(ただし、最初に書いたものとは別の意味になる)
34
+
35
+
32
36
 
33
37
  一方で、str+iというのは、「文字列の先頭」のアドレスを意味しません。
34
38