回答編集履歴
7
リンクの修正
answer
CHANGED
@@ -37,4 +37,4 @@
|
|
37
37
|
|
38
38
|
下記リンク先に飛んで少し待つと画面が画像のように切り替わります。
|
39
39
|
『Next』ボタンでワンステップずつ処理を進められますから、観察してみて下さい。
|
40
|
-
[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=
|
40
|
+
[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
追記
answer
CHANGED
@@ -28,4 +28,13 @@
|
|
28
28
|
|
29
29
|
> ③(*p)++;の()の意味が分かりません。*p++;ではなぜ値が変わるのでしょうか?
|
30
30
|
|
31
|
-
*p++ は *(p++) と同じだからです。
|
31
|
+
*p++ は *(p++) と同じだからです。
|
32
|
+
|
33
|
+
追記
|
34
|
+
---
|
35
|
+
このようにコードの動作を可視化するサービスを使うと、少しイメージを固めやすいです。
|
36
|
+

|
37
|
+
|
38
|
+
下記リンク先に飛んで少し待つと画面が画像のように切り替わります。
|
39
|
+
『Next』ボタンでワンステップずつ処理を進められますから、観察してみて下さい。
|
40
|
+
[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
追記
answer
CHANGED
@@ -15,6 +15,8 @@
|
|
15
15
|
}
|
16
16
|
```
|
17
17
|
|
18
|
+
p=a+1 は p=&a[0]+1 と同じです。
|
19
|
+
|
18
20
|
> しかしprintfで表示するとどこから出てきた数字かわからないものが出力されました。
|
19
21
|
|
20
22
|
文字列を出力する際は、書式指定子 %s を使って下さい。
|
4
追記
answer
CHANGED
@@ -2,7 +2,19 @@
|
|
2
2
|
|
3
3
|
はい。
|
4
4
|
ただし、文脈によっては先頭要素を指すポインタとして振る舞うことがあります。
|
5
|
+
```C
|
6
|
+
#include <stdio.h>
|
5
7
|
|
8
|
+
int main(void) {
|
9
|
+
int arr[] = {3, 1, 4, 1, 5, 9, 2};
|
10
|
+
if(arr == &arr[0]) {
|
11
|
+
printf("arr == &arr[0]\n"); // この行が実行されます
|
12
|
+
}
|
13
|
+
|
14
|
+
return 0;
|
15
|
+
}
|
16
|
+
```
|
17
|
+
|
6
18
|
> しかしprintfで表示するとどこから出てきた数字かわからないものが出力されました。
|
7
19
|
|
8
20
|
文字列を出力する際は、書式指定子 %s を使って下さい。
|
3
追記
answer
CHANGED
@@ -1,5 +1,10 @@
|
|
1
|
-
> ①aは配列という考えであっていますでしょうか?
|
1
|
+
> ①aは配列という考えであっていますでしょうか?
|
2
2
|
|
3
|
+
はい。
|
4
|
+
ただし、文脈によっては先頭要素を指すポインタとして振る舞うことがあります。
|
5
|
+
|
6
|
+
> しかしprintfで表示するとどこから出てきた数字かわからないものが出力されました。
|
7
|
+
|
3
8
|
文字列を出力する際は、書式指定子 %s を使って下さい。
|
4
9
|
|
5
10
|
> ② *p=a+1;において配列に1を足した*pに何の値が入っているのでしょうか?
|
2
修正
answer
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
> ② *p=a+1;において配列に1を足した*pに何の値が入っているのでしょうか?
|
6
6
|
|
7
7
|
配列の先頭アドレスの次のアドレスです。
|
8
|
-
また
|
8
|
+
また char * までがpの型なので、*p=a+1 というより p=a+1 です。
|
9
9
|
|
10
10
|
> ③(*p)++;の()の意味が分かりません。*p++;ではなぜ値が変わるのでしょうか?
|
11
11
|
|
1
修正
answer
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
> ② *p=a+1;において配列に1を足した*pに何の値が入っているのでしょうか?
|
6
6
|
|
7
|
-
配列の先頭
|
7
|
+
配列の先頭アドレスの次のアドレスです。
|
8
8
|
また int * までがpの型なので、*p=a+1 というより p=a+1 です。
|
9
9
|
|
10
10
|
> ③(*p)++;の()の意味が分かりません。*p++;ではなぜ値が変わるのでしょうか?
|