teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2021/02/11 01:25

投稿

thkana
thkana

スコア7738

answer CHANGED
@@ -4,4 +4,10 @@
4
4
 
5
5
  3点目
6
6
  `**pps`と定義したのではありません。`char**`型の変数ppsを宣言、定義しています。
7
- `*pps`は、変数ppsに参照演算子*を作用させているものです。なんの問題もないです。
7
+ `*pps`は、変数ppsに参照演算子*を作用させているものです。なんの問題もないです。
8
+
9
+ ---
10
+ 「なぜなのか」それはそういうことに決まっているから、です。
11
+ char* s[3];はchar*型の変数3つの配列です。
12
+ char s[4];はchar型の変数4つの配列です("abc"は終端文字'\0'が付加されるのでchar4つのスペースを占めます)。
13
+ ![概念図](2b759b1e47c440e57ef95272d857a12f.png)

1

指摘をうけて修正

2021/02/11 01:25

投稿

thkana
thkana

スコア7738

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  1点目、2点目
2
2
  `char *s[3] = { "abc" , "pqr" , "xyz" };`
3
- は、char*型で要素数3の配列を宣言/定義し、"abc"のアドレス、"pqr"のアドレス、"xyz"のアドレスを与えて初期化しています。つまり、配列sは定義されています。配列sは定義されて実体を持っているのでアドレスを得ることができます。
3
+ は、`char*`型で要素数3の配列を宣言/定義し、"abc"のアドレス、"pqr"のアドレス、"xyz"のアドレスを与えて初期化しています。つまり、配列sは定義されています。配列sは定義されて実体を持っているのでアドレスを得ることができます。
4
4
 
5
5
  3点目
6
- **ppsと定義したのではありません。char**型の変数ppsを宣言、定義しています。
6
+ `**pps`と定義したのではありません。`char**`型の変数ppsを宣言、定義しています。
7
- *ppsは、変数ppsに参照演算子*を作用させているものです。なんの問題もないです。
7
+ `*pps`は、変数ppsに参照演算子*を作用させているものです。なんの問題もないです。