質問編集履歴
4
編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -16,4 +16,18 @@
|
|
16
16
|
では、補足になってしまい申し訳ないですが、
|
17
17
|
例えば、*p は str[i]より、ループ三周目のアドレスの指す数値を知りたいときは
|
18
18
|
if (i == 3){ printf("%d\n", str[3]);};と書けばいいのでしょうか?
|
19
|
-
仮に*p は str[i]よりよりprintf("%d\n", str[3]);の部分のstr[3]のように書くにはどう書けばいいのでしょうか?if (i == 3){ printf("%d\n", *p ==3);};でしょうか?
|
19
|
+
仮に*p は str[i]よりよりprintf("%d\n", str[3]);の部分のstr[3]のように書くにはどう書けばいいのでしょうか?if (i == 3){ printf("%d\n", *p ==3);};でしょうか?
|
20
|
+
|
21
|
+
編集2
|
22
|
+
エピスさんの解答より。
|
23
|
+
>>仮に&str[i]のアドレスを上げながらメモリに入った数値をそれぞれの値を+1したい場合は
|
24
|
+
どう書けばよいのでしょうか?
|
25
|
+
|
26
|
+
++str[i++] または str[i++]++
|
27
|
+
for ( ... ;str[i]++, i++) の方が明快か。
|
28
|
+
|
29
|
+
に関して、アドレスの数値を上げるならば&は書かなくていいのでしょうか?要は
|
30
|
+
++&str[i++] または &str[i++]++と書かなくて良いのでしょうか?
|
31
|
+
まあ、アドレスとアドレスの指すメモリに入る数値を同時にあげる書き方が
|
32
|
+
++str[i++] または str[i++]++という決まりなら従うしかないですが。
|
33
|
+
&を付けてアドレスとアドレスの指すメモリに入る数値を同時にあげる書き方はないのでしょうか?
|
3
編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,4 +7,13 @@
|
|
7
7
|
では、ほかのポインタのアドレス(例えばアドレス2)のメモリの数値を上げたい場合は
|
8
8
|
新しくstrA[i]と作り、
|
9
9
|
for文で(*(&str))++と(*(&str A))++の二つを作ればよいのでしょうか?
|
10
|
-
出来ればプログラムを書いて頂けると理解しやすいです。
|
10
|
+
出来ればプログラムを書いて頂けると理解しやすいです。
|
11
|
+
|
12
|
+
**編集**
|
13
|
+
エピスさんの解答に対する返事と補足に関して。
|
14
|
+
ってことは、iの数値を上げながら、iの入っているメモリのアドレスを上げるには
|
15
|
+
for (i=0;str[i]++, i++)と書けばいいのですね。
|
16
|
+
では、補足になってしまい申し訳ないですが、
|
17
|
+
例えば、*p は str[i]より、ループ三周目のアドレスの指す数値を知りたいときは
|
18
|
+
if (i == 3){ printf("%d\n", str[3]);};と書けばいいのでしょうか?
|
19
|
+
仮に*p は str[i]よりよりprintf("%d\n", str[3]);の部分のstr[3]のように書くにはどう書けばいいのでしょうか?if (i == 3){ printf("%d\n", *p ==3);};でしょうか?
|
2
編集
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
ポインタの表すメモリの数値とメモリに入っている数値を同時にあげるには。
|
body
CHANGED
@@ -1,4 +1,10 @@
|
|
1
1
|
ちなみに、for (i = 0; str[i] != 0; str[i++])のstr[i] != 0;は値がstr[i]に数値の0が入るまでstr[i++]、すなわち、&str[i]のアドレスの指定するメモリの数値を+1するという事でしょうか?
|
2
2
|
|
3
3
|
仮に&str[i]自体のアドレスを+1して上げながらメモリに入った数値をそれぞれの&str[i]のアドレスのメモリに入った値を+1したい場合は
|
4
|
-
どう書けばよいのでしょうか?
|
4
|
+
どう書けばよいのでしょうか?
|
5
|
+
|
6
|
+
あるいは、str[i]はポインタのアドレスが指すメモリに入る数値を表しますが、あるアドレス(例えばアドレス1)のメモリの数値しか上がりません。
|
7
|
+
では、ほかのポインタのアドレス(例えばアドレス2)のメモリの数値を上げたい場合は
|
8
|
+
新しくstrA[i]と作り、
|
9
|
+
for文で(*(&str))++と(*(&str A))++の二つを作ればよいのでしょうか?
|
10
|
+
出来ればプログラムを書いて頂けると理解しやすいです。
|
1
編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
ちなみに、for (i = 0; str[i] != 0; str[i++])のstr[i] != 0;は値がstr[i]に数値の0が入るまでstr[i++]、すなわち、&str[i]のアドレスの指定するメモリの数値を+1するという事でしょうか?
|
2
2
|
|
3
|
-
仮に&str[i]のアドレスを上げながらメモリに入った数値をそれぞれの値を+1したい場合は
|
3
|
+
仮に&str[i]自体のアドレスを+1して上げながらメモリに入った数値をそれぞれの&str[i]のアドレスのメモリに入った値を+1したい場合は
|
4
4
|
どう書けばよいのでしょうか?
|