質問編集履歴

4

追記

2017/01/20 11:34

投稿

strike1217
strike1217

スコア651

test CHANGED
File without changes
test CHANGED
@@ -85,3 +85,17 @@
85
85
  実験したのはwindowsです。
86
86
 
87
87
  visual studioでオプションは何も入れないで、clコンパイルしています。
88
+
89
+
90
+
91
+ [追記2]
92
+
93
+ 私のC言語の本にこう書いてあります。
94
+
95
+ > ポインタを他の型へのポインタに型変換することは、その値までもが変わる可能性のある危険な行為であり、注意深く行わなければならない。型や型変換に対して厳密なC++が、voidへのポインタを別の型のポインタに代入する局面で明示的なキャストを必須としているのは、このような危険を避けるためです。
96
+
97
+
98
+
99
+ えーーーと
100
+
101
+ 明示的なキャストすることで、どうしてポインタを他の型へのポインタに変換する際の危険性を避けることができるのでしょうか??

3

追記

2017/01/20 11:33

投稿

strike1217
strike1217

スコア651

test CHANGED
File without changes
test CHANGED
@@ -83,3 +83,5 @@
83
83
  [追記]
84
84
 
85
85
  実験したのはwindowsです。
86
+
87
+ visual studioでオプションは何も入れないで、clコンパイルしています。

2

追記

2017/01/20 10:21

投稿

strike1217
strike1217

スコア651

test CHANGED
File without changes
test CHANGED
@@ -77,3 +77,9 @@
77
77
  2、アライメントを考慮すると「暗黙的、明示的関係なく、ポインタを別の型のポインタへのキャストする」のは控えた方がよろしいんですかね???
78
78
 
79
79
  3、この実験コードに修正箇所があれば、教えてください。
80
+
81
+
82
+
83
+ [追記]
84
+
85
+ 実験したのはwindowsです。

1

追記

2017/01/20 10:13

投稿

strike1217
strike1217

スコア651

test CHANGED
File without changes
test CHANGED
@@ -68,11 +68,11 @@
68
68
 
69
69
  pd = (double *)pc;
70
70
 
71
- こちらは、「明示的にキャストが行われています」
71
+ こちらは、「明示的にキャストが行われています」(多分)
72
72
 
73
73
 
74
74
 
75
- 1、この2つ(明示的キャスト、暗黙的キャスト)正直何が違うんですか?? C/C++でも違いがあるそうですが・・・
75
+ 1、この2つ(明示的キャスト、暗黙的キャスト)正直何が違うんですか?? 明示的にキャストする場合としなくても良い場合の違いがわかりません。C/C++でも違いがあるそうですが・・・
76
76
 
77
77
  2、アライメントを考慮すると「暗黙的、明示的関係なく、ポインタを別の型のポインタへのキャストする」のは控えた方がよろしいんですかね???
78
78