質問編集履歴

4

編集

2021/02/14 16:35

投稿

carnage0216
carnage0216

スコア194

test CHANGED
File without changes
test CHANGED
@@ -35,3 +35,31 @@
35
35
  if (i == 3){ printf("%d\n", str[3]);};と書けばいいのでしょうか?
36
36
 
37
37
  仮に*p は str[i]よりよりprintf("%d\n", str[3]);の部分のstr[3]のように書くにはどう書けばいいのでしょうか?if (i == 3){ printf("%d\n", *p ==3);};でしょうか?
38
+
39
+
40
+
41
+ 編集2
42
+
43
+ エピスさんの解答より。
44
+
45
+ >>仮に&str[i]のアドレスを上げながらメモリに入った数値をそれぞれの値を+1したい場合は
46
+
47
+ どう書けばよいのでしょうか?
48
+
49
+
50
+
51
+ ++str[i++] または str[i++]++
52
+
53
+ for ( ... ;str[i]++, i++) の方が明快か。
54
+
55
+
56
+
57
+ に関して、アドレスの数値を上げるならば&は書かなくていいのでしょうか?要は
58
+
59
+ ++&str[i++] または &str[i++]++と書かなくて良いのでしょうか?
60
+
61
+ まあ、アドレスとアドレスの指すメモリに入る数値を同時にあげる書き方が
62
+
63
+ ++str[i++] または str[i++]++という決まりなら従うしかないですが。
64
+
65
+ &を付けてアドレスとアドレスの指すメモリに入る数値を同時にあげる書き方はないのでしょうか?

3

編集

2021/02/14 16:35

投稿

carnage0216
carnage0216

スコア194

test CHANGED
File without changes
test CHANGED
@@ -17,3 +17,21 @@
17
17
  for文で(*(&str))++と(*(&str A))++の二つを作ればよいのでしょうか?
18
18
 
19
19
  出来ればプログラムを書いて頂けると理解しやすいです。
20
+
21
+
22
+
23
+ **編集**
24
+
25
+ エピスさんの解答に対する返事と補足に関して。
26
+
27
+ ってことは、iの数値を上げながら、iの入っているメモリのアドレスを上げるには
28
+
29
+ for (i=0;str[i]++, i++)と書けばいいのですね。
30
+
31
+ では、補足になってしまい申し訳ないですが、
32
+
33
+ 例えば、*p は str[i]より、ループ三周目のアドレスの指す数値を知りたいときは
34
+
35
+ if (i == 3){ printf("%d\n", str[3]);};と書けばいいのでしょうか?
36
+
37
+ 仮に*p は str[i]よりよりprintf("%d\n", str[3]);の部分のstr[3]のように書くにはどう書けばいいのでしょうか?if (i == 3){ printf("%d\n", *p ==3);};でしょうか?

2

編集

2021/02/14 16:16

投稿

carnage0216
carnage0216

スコア194

test CHANGED
@@ -1 +1 @@
1
- の変化つい教えてください。
1
+ ポインタの表すメモリの数とメモリ入っている数値を同時にあげるには
test CHANGED
@@ -5,3 +5,15 @@
5
5
  仮に&str[i]自体のアドレスを+1して上げながらメモリに入った数値をそれぞれの&str[i]のアドレスのメモリに入った値を+1したい場合は
6
6
 
7
7
  どう書けばよいのでしょうか?
8
+
9
+
10
+
11
+ あるいは、str[i]はポインタのアドレスが指すメモリに入る数値を表しますが、あるアドレス(例えばアドレス1)のメモリの数値しか上がりません。
12
+
13
+ では、ほかのポインタのアドレス(例えばアドレス2)のメモリの数値を上げたい場合は
14
+
15
+ 新しくstrA[i]と作り、
16
+
17
+ for文で(*(&str))++と(*(&str A))++の二つを作ればよいのでしょうか?
18
+
19
+ 出来ればプログラムを書いて頂けると理解しやすいです。

1

編集

2021/02/14 16:00

投稿

carnage0216
carnage0216

スコア194

test CHANGED
File without changes
test CHANGED
@@ -2,6 +2,6 @@
2
2
 
3
3
 
4
4
 
5
- 仮に&str[i]のアドレスを上げながらメモリに入った数値をそれぞれの値を+1したい場合は
5
+ 仮に&str[i]自体のアドレスを+1して上げながらメモリに入った数値をそれぞれの&str[i]のアドレスのメモリに入った値を+1したい場合は
6
6
 
7
7
  どう書けばよいのでしょうか?