質問編集履歴

6

編集

2021/07/28 12:14

投稿

carnage0216
carnage0216

スコア194

test CHANGED
File without changes
test CHANGED
@@ -36,6 +36,12 @@
36
36
 
37
37
 
38
38
 
39
+ 編集
40
+
41
+ 画像のプログラムにおいて質問があります。 "321"[2]では、3は[0]、2は[1]、1は[2] との事ですが、 では、char str[4] = "abc"では、aは[0] ではなく、aは[1]になると言われたのですが、"321"[2]では、3は[0]、2は[1]、1は[2] のやり方に沿うとaは[0]になると思い納得できません。 なぜaは[1]になるのでしょうか?
42
+
43
+
44
+
39
45
  こちらが画像です。
40
46
 
41
47
  ![プログラムの画像](3f94f22033c998db6cef3b07d40c95c9.png)

5

編集

2021/07/28 12:14

投稿

carnage0216
carnage0216

スコア194

test CHANGED
File without changes
test CHANGED
@@ -33,3 +33,9 @@
33
33
  最後の質問については char *str[] = {"abcde"};にすると解決するとの事ですが、なぜ{ }をつけると解決するのかわかりません。ポインタ変数strを扱う時は文字や文字列を{ }で囲まなければならないのでしょうか?
34
34
 
35
35
  どうかよろしくお願いします。
36
+
37
+
38
+
39
+ こちらが画像です。
40
+
41
+ ![プログラムの画像](3f94f22033c998db6cef3b07d40c95c9.png)

4

2021/07/28 12:13

投稿

carnage0216
carnage0216

スコア194

test CHANGED
File without changes
test CHANGED
@@ -30,6 +30,6 @@
30
30
 
31
31
  どうかコンパイルエラーになる理由をわかりやすく教えて下さい。
32
32
 
33
-
33
+ 最後の質問については char *str[] = {"abcde"};にすると解決するとの事ですが、なぜ{ }をつけると解決するのかわかりません。ポインタ変数strを扱う時は文字や文字列を{ }で囲まなければならないのでしょうか?
34
34
 
35
35
  どうかよろしくお願いします。

3

2021/07/28 00:22

投稿

carnage0216
carnage0216

スコア194

test CHANGED
File without changes
test CHANGED
@@ -24,4 +24,12 @@
24
24
 
25
25
 
26
26
 
27
+ 最後にchar str[] = "abcde";ではなく、 char *str[] = "abcde";とした場合、なぜコンパイルエラーを起こすのでしょうか?
28
+
29
+ 文字列の先頭のaがchar型のポインタstr[0]の配列のメモリにaが入るのではないのでしょう?
30
+
31
+ どうかコンパイルエラーになる理由をわかりやすく教えて下さい。
32
+
33
+
34
+
27
35
  どうかよろしくお願いします。

2

2021/07/28 00:18

投稿

carnage0216
carnage0216

スコア194

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  また、char str = "abcde";も間違いなのはstrが配列ではなく、たまの単純変数を扱っていないためでしょうか?だとしたら、 "abcde";の先頭のaの文字のみを扱うため間違っているのでしょうか?
14
14
 
15
- ちなみに、char str[1] = "abcde";とchar str = "abcde"に初期値のための{ }が付かないのは何故でしょうか?正直、**どんな時(ポインタや配列を使う時)に{ }を使うのかよくわかりません。**
15
+ ちなみに、char str[1] = "abcde";とchar str = "abcde"に初期値のための{ }が付かないのは何故でしょうか?正直、**どんな時(ポインタや配列を使う時?)に{ }を使うのかよくわかりません。**
16
16
 
17
17
 
18
18
 

1

2021/07/28 00:02

投稿

carnage0216
carnage0216

スコア194

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  また、char str = "abcde";も間違いなのはstrが配列ではなく、たまの単純変数を扱っていないためでしょうか?だとしたら、 "abcde";の先頭のaの文字のみを扱うため間違っているのでしょうか?
14
14
 
15
- ちなみに、char str[1] = "abcde";とchar str = "abcde"に初期値のための{ }が付かないのは何故でしょうか?正直、どんな時(ポインタや配列を使う時)に{ }を使うのかよくわかりません。
15
+ ちなみに、char str[1] = "abcde";とchar str = "abcde"に初期値のための{ }が付かないのは何故でしょうか?正直、**どんな時(ポインタや配列を使う時)に{ }を使うのかよくわかりません。**
16
16
 
17
17
 
18
18