回答編集履歴
7
リンクの修正
test
CHANGED
@@ -76,4 +76,4 @@
|
|
76
76
|
|
77
77
|
『Next』ボタンでワンステップずつ処理を進められますから、観察してみて下さい。
|
78
78
|
|
79
|
-
[Visualize Python, Java, JavaScript, C, C++, Ruby code execution](http://www.pythontutor.com/visualize.html#code=int%20main%28void%29%7B%0A%20%20%20%20int%20arr%5B%5D%20%3D%20%7B3,%201,%204,%201,%205,%209,%202%7D%3B%0A%20%20%20%20int%20*p%20%3D%20arr%2B1%3B%0A%20%20%20%20%0A%20%20%20%20%28*p%29%2B%2B%3B%0A%20%20%20%20int%20n%20%3D%20*%28p%2B%2B%29%3B%0A%20%20%20%20int%20m%20%3D%20*p%2B%2B%3B%0A%20%20%0A%20%20%20%20return%200%3B%0A%7D&cumulative=false&curInstr=
|
79
|
+
[Visualize Python, Java, JavaScript, C, C++, Ruby code execution](http://www.pythontutor.com/visualize.html#code=int%20main%28void%29%7B%0A%20%20%20%20int%20arr%5B%5D%20%3D%20%7B3,%201,%204,%201,%205,%209,%202%7D%3B%0A%20%20%20%20int%20*p%20%3D%20arr%2B1%3B%0A%20%20%20%20%0A%20%20%20%20%28*p%29%2B%2B%3B%0A%20%20%20%20int%20n%20%3D%20*%28p%2B%2B%29%3B%0A%20%20%20%20int%20m%20%3D%20*p%2B%2B%3B%0A%20%20%0A%20%20%20%20return%200%3B%0A%7D&cumulative=false&curInstr=0&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=c&rawInputLstJSON=%5B%5D&textReferences=false)
|
6
追記
test
CHANGED
@@ -59,3 +59,21 @@
|
|
59
59
|
|
60
60
|
|
61
61
|
*p++ は *(p++) と同じだからです。
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
追記
|
66
|
+
|
67
|
+
---
|
68
|
+
|
69
|
+
このようにコードの動作を可視化するサービスを使うと、少しイメージを固めやすいです。
|
70
|
+
|
71
|
+
![実行イメージ](c1f37c2f3da453b6d6128e68b4f62829.png)
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
下記リンク先に飛んで少し待つと画面が画像のように切り替わります。
|
76
|
+
|
77
|
+
『Next』ボタンでワンステップずつ処理を進められますから、観察してみて下さい。
|
78
|
+
|
79
|
+
[Visualize Python, Java, JavaScript, C, C++, Ruby code execution](http://www.pythontutor.com/visualize.html#code=int%20main%28void%29%7B%0A%20%20%20%20int%20arr%5B%5D%20%3D%20%7B3,%201,%204,%201,%205,%209,%202%7D%3B%0A%20%20%20%20int%20*p%20%3D%20arr%2B1%3B%0A%20%20%20%20%0A%20%20%20%20%28*p%29%2B%2B%3B%0A%20%20%20%20int%20n%20%3D%20*%28p%2B%2B%29%3B%0A%20%20%20%20int%20m%20%3D%20*p%2B%2B%3B%0A%20%20%0A%20%20%20%20return%200%3B%0A%7D&cumulative=false&curInstr=4&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=c&rawInputLstJSON=%5B%5D&textReferences=false)
|
5
追記
test
CHANGED
@@ -32,6 +32,10 @@
|
|
32
32
|
|
33
33
|
|
34
34
|
|
35
|
+
p=a+1 は p=&a[0]+1 と同じです。
|
36
|
+
|
37
|
+
|
38
|
+
|
35
39
|
> しかしprintfで表示するとどこから出てきた数字かわからないものが出力されました。
|
36
40
|
|
37
41
|
|
4
追記
test
CHANGED
@@ -5,6 +5,30 @@
|
|
5
5
|
はい。
|
6
6
|
|
7
7
|
ただし、文脈によっては先頭要素を指すポインタとして振る舞うことがあります。
|
8
|
+
|
9
|
+
```C
|
10
|
+
|
11
|
+
#include <stdio.h>
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
int main(void) {
|
16
|
+
|
17
|
+
int arr[] = {3, 1, 4, 1, 5, 9, 2};
|
18
|
+
|
19
|
+
if(arr == &arr[0]) {
|
20
|
+
|
21
|
+
printf("arr == &arr[0]\n"); // この行が実行されます
|
22
|
+
|
23
|
+
}
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
return 0;
|
28
|
+
|
29
|
+
}
|
30
|
+
|
31
|
+
```
|
8
32
|
|
9
33
|
|
10
34
|
|
3
追記
test
CHANGED
@@ -1,4 +1,14 @@
|
|
1
|
+
> ①aは配列という考えであっていますでしょうか?
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
はい。
|
6
|
+
|
7
|
+
ただし、文脈によっては先頭要素を指すポインタとして振る舞うことがあります。
|
8
|
+
|
9
|
+
|
10
|
+
|
1
|
-
>
|
11
|
+
> しかしprintfで表示するとどこから出てきた数字かわからないものが出力されました。
|
2
12
|
|
3
13
|
|
4
14
|
|
2
修正
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
配列の先頭アドレスの次のアドレスです。
|
14
14
|
|
15
|
-
また
|
15
|
+
また char * までがpの型なので、*p=a+1 というより p=a+1 です。
|
16
16
|
|
17
17
|
|
18
18
|
|
1
修正
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
配列の先頭
|
13
|
+
配列の先頭アドレスの次のアドレスです。
|
14
14
|
|
15
15
|
また int * までがpの型なので、*p=a+1 というより p=a+1 です。
|
16
16
|
|