回答編集履歴

1

\(1\)が抜けていた

2016/03/30 20:54

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -1,4 +1,8 @@
1
+ (1)はすでにアドレスですので、`data`のままいいです。`&*data`はdataが示す値を取得して、その値が存在する場所のアドレス(結局はdataそのもの)になるため、意味が無い演算です。よく`scanf`で`&`を付けるのはポインタを指定しなければならないからで、既にポインタの場合はそのままでかみません。
2
+
3
+
4
+
1
- 注意すべきなのは演算子の優先順位とその優先順位が高いところから値を求めていく点です。演算子の優先順位は下記を参考にしてください。
5
+ (2)で注意すべきなのは演算子の優先順位とその優先順位が高いところから値を求めていく点です。演算子の優先順位は下記を参考にしてください。
2
6
 
3
7
  [Wikipedia:CとC++演算子#演算子の優先順位](https://ja.wikipedia.org/wiki/C%E3%81%A8C%2B%2B%E3%81%AE%E6%BC%94%E7%AE%97%E5%AD%90#.E6.BC.94.E7.AE.97.E5.AD.90.E3.81.AE.E5.84.AA.E5.85.88.E9.A0.86.E4.BD.8D)
4
8
 
@@ -31,3 +35,7 @@
31
35
 
32
36
 
33
37
  という動作になります。
38
+
39
+
40
+
41
+ (おまけ)古典ですが聖典「[K&R](https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9EC)」は一度は読んでおくと良いかもしれません。内容は古いですが、C言語を作った開発者によるC言語のエッセンスが詰まっています。ただ、全く初心者向けではないため、一度読んだだけで全て理解するのは難しいです。ある程度やってから再度読み直すと、その素晴らしさに気付くことでしょう。