最近思うことですが、ある本には書いてあるのに、他の本には書いていないことが多々あることに気づきました。
多分、書いていないほうの本は、初心者が混乱しないようにとの配慮からだと思うのですが、私には基本的なことなのに書かれていないと感じられます。
このような状況においては、基本的なことを全て理解しようとすると、1冊の本ではまかないきれず、たくさんの本を読む必要が出てきます。
バラバラに買っていたら出費が増えるばかりで、書いている内容はどれもほぼ同じ。で終わってしまいます。
以上の問題に対し、この本は3巻シリーズで高いが、基本は全て書かれていると言えるようなお勧めの本は有りますでしょうか?
アドバイスお願いいたします。
<ある本にしか書かれていなかった基本事項>
ポインタが指すことの出来る範囲は、
配列の先頭の要素から、末尾要素の ”次”の要素までです。
No.4
- 回答日時:
>>そういうアナーキーなことが書かれているのは何という本ですか。
>「柴田望洋氏の明解C言語入門編」です。P243に番兵法などのために配慮されている。と書かれて有りました。
そんな規則あったかいな…。
でも望洋先生がいいかげんなこと言うとも思えないし、
何かの勘違いじゃないかな…と思って、調べました。
近所の本屋に立ち読みに行ったけど、置いてない。
どうしたものかな、と思ったら、
うちの書棚にありました。
すっかり忘れてた。
数を持ってればいいというものではありませんね。
それはともかく、
書かれていることが私の常識になかったので、
C言語の憲法と言える、JIS X 3010規格を読み直してみました。
その結果、§6.3.6 加減演算子の項目にありました。
「ポインタオペランド及びその結果の両方が同じ配列オブジェクトの要素、
又は最後の要素を一つ超えたところを指している場合、
その結果は、オーバフローを起こしてはならない。
それ以外の場合、動作は未定義とする。……」
との表現で、配列の中と、一つ超えたところ以外の
アクセスを未定義としていました。
ここの規格をうんと厳密に読むと、
望洋先生の記述にも問題がないわけではないのですが、
大筋ではまちがっておりません。
破棄する必要はないです。
これはX3010の「可搬性」の項にも記述がない事項で、
ほとんどのプログラマが注意を止めないところだと思います。
望洋先生はすごい。
私の知識が欠落していました。
訂正して、おわびいたします。
なお、上記のX3010というのは、JISが出しているC言語の規格書です。
本当はこれも持っているといいのだけど、
文体が法律のように難解だし、高価(8000円ぐらいだったかな)なので、
ちょっと一般的には奨められません。
liar_adanさん ありがとうございます。
アナーキーという表現をどのように解釈したらいいの?
と思っていましたが、これでよく分かりました。
いずれにしてもこの件は、間違いではないが一般的にはあまり使われない領域のようですね。
No.3
- 回答日時:
>ポインタが指すことの出来る範囲は、
>配列の先頭の要素から、末尾要素の ”次”の要素までです。
参照しなくていいなら配列を無視してどこでも指せますし、
厳密に参照可能と言う意味なら配列の末尾までとすべきです。
こういう誤った事を書いてある本は他の内容もあてになりませんから、変な事を覚え無いうちに破棄することをお勧めします。
基本は全て・・っていうのは、漠然としすぎているので、手頃なのはなさそうに思います。
C言語の基本、プログラミングそのもの基本、コンピュータのしくみとしての基本と別々に必要と思いますし。
No.2ベストアンサー
- 回答日時:
>たくさんの本を読む必要が出てきます。
同感です。うちには三十冊以上のC言語の本がありますが…。
シリーズでそういうのは知りませんが、
以下の本を持っておけば、ある程度対処できるのではないかと思います。
(総記)
『新ANSI C言語辞典』平林雅英著 技術評論社
『ANSI C/C++辞典』平林雅英著 共立出版
どちらか一冊。
後者はC++も載っているけど、昔のC++規格。
(概念・理論)
『Cプログラミング専門課程』藤原博文著 技術評論社
これはお勧め中のお勧めなんだけど、
残念ながら現在品切れのようです。
古本屋で見かけたら買っておきましょう。
「柴田望洋」氏の本は評価が高いようです。
うちには『秘伝C言語問答 ポインタ編』(ソフトバンク)がありますが、
ポインタ関係の理解のためにはいい本だと思います。
(ライブラリ)
ライブラリ関数を易しく説明した本も
あるといいのですが…。うちには
『新・詳説C言語 H&Sリファレンス』(ソフトバンク刊)がありますが、
これも現在在庫切れのようです。
本屋に行けば似た狙いの本は見つかると思います。
(FAQ)
昔、
『CプログラミングFAQ』(トッパン刊)
という本があって、便利だったのだけど、
トッパン自体が出版事業をやめてしまった。
もっともこの内容は
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
から読めます。
それぞれ一冊買っておくといいと思います。
ところで、
>ポインタが指すことの出来る範囲は、
>配列の先頭の要素から、末尾要素の ”次”の要素までです。
そういうアナーキーなことが書かれているのは何という本ですか。
後学のためにぜひ教えてください。
参考URL:http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
いろいろ詳細に回答ありがとうございました。
>そういうアナーキーなことが書かれているのは何という本ですか。
良くぞ聞いて下さいました。実はその本は、あの著名な「柴田望洋氏の明解C言語入門編」です。P243に番兵法などのために配慮されている。と書かれて有りました。
元々、良書だとは聞いていましたが、私にとっては知らない、しかし基本事項と思われる項目が数点あり今回の質問に至りました。
No.1
- 回答日時:
こんにちは。
シリーズもので完結するC言語の手引書はないようですね。参考URLから、例えば同じ著者による「入門扁」「応用扁」をそろえられてはいかがでしょうか。
アドバイスになったでしょうか。
参考URL:http://www.amazon.co.jp/exec/obidos/search-handl …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 高校 ノートの判断基準について(?) 3 2022/07/15 21:39
- 実用・教育 自己啓発本を買う人について 自己啓発本の内容について知ろうとするのは良い事だと思います。 しかし、ほ 6 2023/04/09 13:49
- その他(悩み相談・人生相談) 皆さんに質問です! 皆さんならどちらを雇いますか? (少し長いかもです!) ◯Aさん(男性) 容姿: 2 2022/08/30 22:11
- 政治 日本は義務教育でカルトの危険性を教えるべきではないですか? 17 2022/07/28 21:40
- 個人事業主・自営業・フリーランス 個人事業主が報酬額記載なしの基本契約書を結ぶメリットについて 6 2023/07/13 10:36
- 友達・仲間 誓約書の署名を強要されていて困惑しております。 3 2022/06/21 17:42
- 実用・教育 遅読と速読はどちらが良いと思われますか? 遅読にも速読にもメリットがあるように思います。 私は遅読す 5 2022/04/18 07:18
- その他(教育・科学・学問) 私は普段本も読まず学生時代読書感想文の課題が出てもネットで調べるなどして乗り越えてきました。 文を要 5 2022/09/12 14:36
- 歴史学 世界史と日本史が大学で必要で入学までの1ヶ月少し勉強しようと思います。高校では全く世界史や日本史はや 7 2023/02/24 00:00
- 弁護士・行政書士・司法書士・社会保険労務士 法 勉強 基本書の取り扱い方 通読 法律資格試験において問題を解けるようにするためには、当然演習が必 5 2022/05/16 09:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列を使わずに、変数名を動的...
-
VBで構造体の配列を関数に渡す...
-
C言語 配列の長さの上限
-
配列で格納したものをmsgboxで...
-
CSVファイルのデータを2次元配...
-
テキストファイルから文字列を...
-
パイソンの
-
C# 配列の変数宣言について。
-
VBでC言語のポインタみたい...
-
先頭アドレスとは何ですか?
-
銀行ATMの数字キーの配列
-
C++、コンストラクタの引数の数...
-
メモリの初期値
-
プログラムが書けません。
-
配列の参照渡し
-
アルファベットの配列を数字の...
-
unsigned char配列への入力の仕方
-
配列を含む構造体の初期値について
-
配列をEraseしてもメモリが開放...
-
C言語で2次元配列の引数定義や...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列の長さの上限
-
配列を使わずに、変数名を動的...
-
配列で格納したものをmsgboxで...
-
配列の参照渡しで型が一致しま...
-
C# Listを使わずに2次元配列の...
-
VBで構造体の配列を関数に渡す...
-
複数の選択範囲の行番号を個別...
-
パイソンの
-
先頭アドレスとは何ですか?
-
【速いブラインドタッチ】手を...
-
C# 配列の変数宣言について。
-
C言語初心者 ポインタについて...
-
unsigned char配列への入力の仕方
-
テキストファイルから文字列を...
-
ExcelVBAで質問です。離れた二...
-
Redimした動的配列はEraseする...
-
C言語で特定列だけを抽出して配...
-
擬似コード 長さがmの配列でな...
-
メモリの初期値
-
C言語初心者 構造体 課題について
おすすめ情報