質問するログイン新規登録

回答編集履歴

1

誤記の修正

2016/11/09 08:09

投稿

majiponi
majiponi

スコア1722

answer CHANGED
@@ -6,7 +6,7 @@
6
6
  4. C言語では、文字列はchar型の配列として表現されており、配列と配列は、直接、==演算子等で比較することができない
7
7
  5. 直接比較できない理由は、配列の名前(lineなど)を書くと、その先頭の要素の位置(アドレス)を表すことになっていて、アドレスとアドレスを比較するという意味になってしまうから
8
8
  6. ""で囲まれた文字列(リテラル)も、そのような文字列を格納している配列の先頭の要素の位置(アドレス)を表している
9
- 7. つまり質問文で提示された条件式の場合、異なる配列のアドレスを比較することになってしまい、条件式が成り立つことがなくなっている
9
+ 7. つまり質問文で提示された条件式の場合、異なる配列のアドレスを比較することになってしまい、条件式が常に成り立つ(修正しました)
10
10
  8. なぜ配列の名前を書くと、アドレスを意味する仕様になっているかを書くと、C言語の開発者が、「そのほうがポインタを扱う際に便利だから」と考えたから
11
11
  9. C++言語の標準ライブラリでは、演算子を利用して比較することができるよう改善された
12
12