回答編集履歴

7

リンクの修正

2019/11/20 08:18

投稿

LouiS0616
LouiS0616

スコア35668

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=4&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=c&rawInputLstJSON=%5B%5D&textReferences=false)
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

追記

2019/11/20 08:17

投稿

LouiS0616
LouiS0616

スコア35668

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

追記

2019/11/20 08:16

投稿

LouiS0616
LouiS0616

スコア35668

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

追記

2019/11/20 06:10

投稿

LouiS0616
LouiS0616

スコア35668

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

追記

2019/11/20 06:09

投稿

LouiS0616
LouiS0616

スコア35668

test CHANGED
@@ -1,4 +1,14 @@
1
+ > ①aは配列という考えであっていますでしょうか?
2
+
3
+
4
+
5
+ はい。
6
+
7
+ ただし、文脈によっては先頭要素を指すポインタとして振る舞うことがあります。
8
+
9
+
10
+
1
- > ①aは配列という考えであっていますでょうかしprintfで表示するとどこから出てきた数字かわからないものが出力されました。
11
+ > しかしprintfで表示するとどこから出てきた数字かわからないものが出力されました。
2
12
 
3
13
 
4
14
 

2

修正

2019/11/20 06:05

投稿

LouiS0616
LouiS0616

スコア35668

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  配列の先頭アドレスの次のアドレスです。
14
14
 
15
- また int * までがpの型なので、*p=a+1 というより p=a+1 です。
15
+ また char * までがpの型なので、*p=a+1 というより p=a+1 です。
16
16
 
17
17
 
18
18
 

1

修正

2019/11/20 05:58

投稿

LouiS0616
LouiS0616

スコア35668

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