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

回答編集履歴

5

表現変更

2019/12/11 01:23

投稿

jimbe
jimbe

スコア13357

answer CHANGED
@@ -1,12 +1,12 @@
1
1
  前に '*' があるかどうかでポインタ変数の扱いは全く異なることをまず理解すべきと思います.
2
2
  a とした場合はアドレスを扱います.
3
- *a とした場合はそのアドレスが示すデータを扱います.
3
+ *a とした場合はそのアドレスが示す値(変数)を扱います.
4
4
 
5
5
  文字列(例:"abc")は先頭の文字のアドレスで扱われます. ですので a には代入できますが *a にはできません.
6
- 文字(例:'a')はデータです. ですので *a には代入できますが a にはできません.
6
+ 文字(例:'a')はです. ですので *a には代入できますが a にはできません.
7
7
  配列の配列名(例:b)はアドレスで扱われます. ですので a には代入できますが *a にはできません.
8
- 配列の要素(例:b[1])はデータです. ですので *a には代入できますが a にはできません.
8
+ 配列の要素(例:b[1])は変数です. ですので *a には代入できますが a にはできません.
9
- (ですが, 配列の要素はアドレスを得ることが出来ます. それは &b[1] と '&' を付けた場合で, そうすると a には代入できますが, *a には代入できません. そしてこの方法は文字にはできません.)
9
+ (ですが, 変数はアドレスを得ることが出来ます. それは &b[1] と '&' を付けた場合で, そうすると a には代入できますが, *a には代入できません. そしてこの方法は文字にはできません.)
10
10
 
11
11
  配列に対する初期値の設定(例:char b[10]="cd")は特殊で, 上記のような理解には当てはまりません.
12
12
 

4

間違い修正

2019/12/11 01:23

投稿

jimbe
jimbe

スコア13357

answer CHANGED
@@ -5,8 +5,8 @@
5
5
  文字列(例:"abc")は先頭の文字のアドレスで扱われます. ですので a には代入できますが *a にはできません.
6
6
  文字(例:'a')はデータです. ですので *a には代入できますが a にはできません.
7
7
  配列の配列名(例:b)はアドレスで扱われます. ですので a には代入できますが *a にはできません.
8
- 配列の要素(例:b[1])はデータです. ですので a には代入できますが *a にはできません.
8
+ 配列の要素(例:b[1])はデータです. ですので *a には代入できますが a にはできません.
9
- (ですが, 配列の要素はアドレスを得ることが出来ます. それは &b[1] と '&' を付けた場合で, そうすると *a には代入できますが, a には代入できません. そしてこの方法は文字にはできません.)
9
+ (ですが, 配列の要素はアドレスを得ることが出来ます. それは &b[1] と '&' を付けた場合で, そうすると a には代入できますが, *a には代入できません. そしてこの方法は文字にはできません.)
10
10
 
11
11
  配列に対する初期値の設定(例:char b[10]="cd")は特殊で, 上記のような理解には当てはまりません.
12
12
 

3

追加

2019/12/10 18:35

投稿

jimbe
jimbe

スコア13357

answer CHANGED
@@ -8,4 +8,6 @@
8
8
  配列の要素(例:b[1])はデータです. ですので a には代入できますが *a にはできません.
9
9
  (ですが, 配列の要素はアドレスを得ることが出来ます. それは &b[1] と '&' を付けた場合で, そうすると *a には代入できますが, a には代入できません. そしてこの方法は文字にはできません.)
10
10
 
11
- 配列に対する初期値の設定(例:char b[10]="cd")は特殊で, 上記のような理解には当てはまりません.
11
+ 配列に対する初期値の設定(例:char b[10]="cd")は特殊で, 上記のような理解には当てはまりません.
12
+
13
+ malloc や strstr はアドレスを返します, ですので a には代入できますが *a には代入できません.

2

修正

2019/12/10 18:32

投稿

jimbe
jimbe

スコア13357

answer CHANGED
@@ -6,6 +6,6 @@
6
6
  文字(例:'a')はデータです. ですので *a には代入できますが a にはできません.
7
7
  配列の配列名(例:b)はアドレスで扱われます. ですので a には代入できますが *a にはできません.
8
8
  配列の要素(例:b[1])はデータです. ですので a には代入できますが *a にはできません.
9
- ですが, 配列の要素はアドレスを得ることが出来ます. それは &b[1] と '&' を付けた場合で, そうすると *a には代入できますが, a には代入できなくなり. これは前記の文字にはできません.
9
+ (ですが, 配列の要素はアドレスを得ることが出来ます. それは &b[1] と '&' を付けた場合で, そうすると *a には代入できますが, a には代入できません. そしてこの方法は文字にはできません.)
10
10
 
11
11
  配列に対する初期値の設定(例:char b[10]="cd")は特殊で, 上記のような理解には当てはまりません.

1

表現修正

2019/12/10 18:28

投稿

jimbe
jimbe

スコア13357

answer CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  文字列(例:"abc")は先頭の文字のアドレスで扱われます. ですので a には代入できますが *a にはできません.
6
6
  文字(例:'a')はデータです. ですので *a には代入できますが a にはできません.
7
- 配列(例:b)の配列名はアドレスで扱われます. ですので a には代入できますが *a にはできません.
7
+ 配列の配列名(例:b)はアドレスで扱われます. ですので a には代入できますが *a にはできません.
8
8
  配列の要素(例:b[1])はデータです. ですので a には代入できますが *a にはできません.
9
9
  ですが, 配列の要素はアドレスを得ることが出来ます. それは &b[1] と '&' を付けた場合で, そうすると *a には代入できますが, a には代入できなくなります. これは前記の文字にはできません.
10
10