ホームページ > バックエンド開発 > C#.Net チュートリアル > C 言語のクイック学習および入門ガイド

C 言語のクイック学習および入門ガイド

伊谢尔伦
リリース: 2016-11-26 09:05:48
オリジナル
1240 人が閲覧しました

今は Java と .net の時代で、C とアセンブリはまだ必要だと考える人もいますか? Java と .net はソフトウェア上に構築されており、市場を独占するために確立されたシステムです。それは、自分が巨人の肩の上に立っていると思っているようなものです。 、実際、穴の中の蛙になりました。本当のプログラマーになるために、そしてマスタープログラマーになるには、マシンから始めて、CPU からオペレーティングシステム、そしてソフトウェアシステムに至る必要があります。マスターの領域は、ソフトウェア設計の啓蒙後の鏡です。素晴らしいです、私はプログラムです。

見物人の李斯は言いました:この人は愚かです!マウスを使っていくつかのコントロールをドラッグするだけで、xxx 管理システムになります。C 言語で 1 年は書けないかもしれません。まあ、これを言う人はすでに mS の奴隷であることを認めなければなりませんが、MFC 自体は閉じたアーキテクチャであるため、MS から学習を始めると閉じた思考モードになるだけです。多くの人が表面的なことだけを学んでマスターにならないことを望んでいます。そのため、いわゆるビジュアル プログラム開発ツールを強く推奨しています。それに騙されて結局道に迷ってしまう人が本当にたくさんいます。彼はプログラムを扱えないとしましょう。彼はそれを行うことができますが、プログラムがより複雑で問題が発生した場合、どこに問題があるのか​​がわかりません。

Liang Zhaoxin、素晴らしい人です、彼は言いました:「マウスを使ってプログラムを書く方法が全く分かりません。私の会社では、熟練者のキーボードでは常にビープ音が鳴り、マウスでは時々ビープ音が鳴りますが、初心者のマウスではビープ音が鳴ります。キーボードが時々鳴るし、給料の差は2倍もありません! 「

C言語はすべての主要なオペレーティングシステムの基礎です。Unix、Linux、およびWindowsのカーネルはすべてC言語で開発されています。(場所によっては) 、アセンブリ言語と混合して開発されています) Windows API は C 言語関数のインターフェイスであることがわかりましたか? Unix/Linux アプリケーションの大部分は C 言語で開発されていますが、純粋な API で開発された Windows アプリケーションはあまりなく、そのほとんどは、実際には VCIDE を指す、いわゆる VC++ などの何らかのアプリケーション フレームワークに依存しています。 +C++ 言語 +MFC (現在は ATL と WTL に焦点が移りました) ですが、Windows サービス、ネットワーク、ドライバーなどの基盤となるソフトウェアは依然として C 言語で開発されています。 Java 仮想マシンを含むさまざまな言語のコンパイラは C 言語で開発されています。携帯電話やPDAなどのさまざまな組み込み機器もC言語で開発されています。

最初にカバンに入れて一緒に進むのは「標準化されたフォーマット」です。したがって、標準化された形式が開始の基礎となります。では、この仕様の形式には何が含まれているのでしょうか?かなりの数があり、それを行うには忍耐が必要です。長い識別子の命名、コードのインデント、1 画面を超えない一対の中括弧など。

2番目に大事なことは忍耐です。よく言われるように、仕事をうまくやり遂げたいなら、まず自分の道具を磨かなければなりません。成功するには、比較的日常的なプロセスがなければ不可能です。これは、忍耐強く学習プロセスを段階的に進めなければならないことを意味するだけでなく、調整プロセスという別の重要な側面についても語っています。デバッグは、プログラムを書くプロセスにおいて重要な側面です。もし誰かが一度にプログラムを書くことができたら、その人は素晴らしいです。彼は大きな牛であるだけでなく、私が乗っている緑の牛でもあります。定命の者は非倫理的だ!デバッグは、すべてのプログラムが通過する必要があるプロセスです。

最初のステップ、何を学ぶべきですか?犬のたたき棒法!笑

かつて偉人はこう言いました、「権威の反復が成熟への唯一の道である。」これが巨人の肩に立つためのアプローチです。そうすることで初めて、私たちはそれを習得し、学校を始めることができます。これは、さらに先に進むための近道です。

本を読みましょう、良い本を読みましょう!この本に書かれていることは、数十年の経験を持つ先人によって書かれたものであり、10冊の本を読むことは、先人から数十年のスキルを吸収することに相当し、あなたの内なる力も急速に加子によって増加します。 :) もちろん、良い本だけが栄養になります。何千冊もの本を読んで、神のようにプログラムしなければなりません。退屈な読書は非常に憂鬱で、簡単に化石になってしまいます。最近では、ソース コードを使用して問題を説明する本が多くなっています。ソース コードは、本の中の動きを 1 つずつ示すアニメーションやスライドショーのようなものです。 この手動入力のステップを省略することはできません。多くの書籍にはサポート用のソース コードが含まれており、ソース コードを直接コピーしてコンパイルして実行することは賢明です。

TC には少なくとも 1 つの利点があります。それは、キーの組み合わせを使用する習慣とキーボード プログラミングを使用する習慣を訓練できることです。

1. 良い本を読まなければなりません、そうでないなら読まないほうがいいです

カーニハンとリッチーの『TheC Programming Language』(中国語訳:「C プログラミング言語」)は古典中の古典と言えます。しかし、古いバージョンの多くの内容は時代遅れであり、現在の標準的な C 言語とはかけ離れています。最新バージョンです。それ以外の場合は見ない方がよいでしょう。また、古典的で権威のある本でもすべてを網羅できるわけではないので、「C言語リファレンスマニュアル」を手元に置いておく必要があります。 「C 言語リファレンス マニュアル」は、C 言語の標準を詳細に解説した「CReferenceManual」で、C 言語の標準ライブラリ関数のほとんどが詳細に記載されており、C 言語の最高の標準参考書と言えます。ちなみに、最新の『C プログラミング言語』は C89 規格に基づいて改訂されていますが、『C 言語リファレンスマニュアル』は C99 規格に基づいて記述されているため、両者には若干の違いがある可能性があります。標準。 「C とポインター」という本もあり、これも非常によく書かれています。英語名は「Pointerson C」で、この本の特徴であるポインターの重要性が特に強調されています。ただし、この本は初心者にはあまり適していません。以前に C 言語を学習したことがあり、C 言語の基本的な知識はあるものの、まだ十分ではない場合は、この本を試してみてください。ポインタを理解すれば、C言語はもう難しくないと思います。

C 言語の教科書を読み終えて、さらに先に進みたい場合は、必ず読まなければならない本が 2 冊あります。 1 つ目は「CTraps and Pitfalls」(中国語訳:「C トラップとピットフォール」)で、非常に興味深い内容が含まれた非常に薄い冊子です。なお、この本は 20 年以上前に書かれており、そこで言及されている C 言語の欠点の多くは改善されていますが、ある程度の歴史を理解することは悪いことではありません。続いて「Expert C Programming」(中国語訳:「Expert C Programming」)に挑戦してみましょう。この本は、その名のとおり、かなり難しいものですが、しっかり読んで理解すれば、自信を持って大胆に書くことができます。履歴書には「C プログラミングに堪能」と記載してください。

1 つの原則を覚えておいてください。まだ理解していない本は読まないでください。それは人生の無駄です。理解できない場合は、重要な基礎知識が欠けていると考えられます。この時点で、どのようなコンテンツを追加する必要があるのか​​を慎重に分析し、書店に行ってそのコンテンツに関する書籍を探す必要があります。基本的な知識を完了してから再び学習することによってのみ、半分の労力で本当に 2 倍の結果を得ることができます。

第二に、Unix/Linux か Windows か、これは大きな問題です

プログラミング環境が異なると、異なる考え方を持つプログラマーが生まれます。ほとんどの Windows プログラマーは Visual Studio などの統合開発環境に依存していますが、Unix プログラマーは Makefile とコンソールを好みます。 Windows で C 言語を学習するには、いくつかの基本的な Visual C++ ツールバー ボタンを押すだけで Hello, World! の作成を開始できますが、Unix では、いくつかの基本的なコンソール操作が必要であることは明らかです。 。 Unix 環境の方が単純だと思う人もいるかもしれませんが、習慣の力は偉大です。

したがって、初心者には、Visual C++ 6.0 (Visual C++.NET ではない) または DevC++ を主な学習環境として使用し、IDE の使用スキルにあまり囚われないようにすることをお勧めします。将来的には Unix 環境に切り替える必要があるからです。 。 Visual C++ 6.0 は使いやすく、デバッグが直感的ですが、デフォルトのコンパイラは C 標準を十分にサポートしていませんが、DevC++ は gcc コンパイラを使用し、C99 標準を十分にサポートしています。ちなみに、多くの大学の C 言語コースは依然として TurboC2.0 を実験環境として使用しています。これは非常に望ましくありません。第 1 の理由は、TC2.0 が C 標準をほとんどサポートしていないことです。プログラムは 16 ビットなので、将来 32 ビット プログラムを理解するのに大きな問題が発生します (もちろん、djgpp などを使用すると TC2.0 で 32 ビット プログラムをコンパイルできますが、それは複雑すぎます)。

C 言語の教科書の学習を終えたら、Unix プラットフォームに目を向けて学習を続ける必要があります (「C Expert Programming」など) ほとんどすべての高度な C 言語チュートリアルは Unix プラットフォームに基づいています。変換のプロセスは、Windows プラットフォームの考え方とはまったく異なる、さまざまな複雑なコマンドに直面する必要がありますが、苦労する価値はあります。 Unix と C は共生しており、Unix の考え方や習慣は C 言語の考え方や習慣とより一致しています。 Unix では、優れたソースコードが無数に見つかり、読み放題です。特定のライブラリ関数のオンラインマニュアルも簡単に参照できます。また、最適なコーディングスタイルも確認できます。専用のを書きます(この記事で詳しく説明します)。

要約すると、次のような一文になります。C 言語を学ぶ初心者には、Windows システムと統合開発環境を使用することをお勧めします。「達人」になるために熱心に取り組む準備をするときは、まず Unix プラットフォームに目を向けてください。

3. すべての準備が整いました、あなたは東風です

本が選択され、環境設定が完了しました。よく言われるように、すべての準備が整いました。必要なのはあなた自身の努力だけです。本の序文から始めて、手元の教科書をじっくり読んでください。本を読むとき、最初の章から直接読み始める人が多いのですが、これは間違ったアプローチです。序文は著者による本全体の一般的な紹介であり、本をスムーズに読むために必要な基礎が書かれており、基礎知識がすでにあるかどうかを確認するのに役立ちます。はしがきを読んだ後は、目次も参照して本の全体の構成を理解し、学習計画を立ててください。

例の後に演習を行います。初心者にはすべての演習を独立して行うことをお勧めします。

この方法で学ぶのは遅すぎると思うかもしれませんが、そうではありません。注意深く勉強すれば、後から学んで前に理解していなかったことがわかったときに振り返る必要はありません。得たものは本当に損失に値しません。一般に、本をすべて読んだ後は、本をそのままコピーするか、あるいは自分の思いつきで書くかにかかわらず、数千行または場合によっては数万行のコードを完成させる必要があります。これは、将来学習を続けるための資産となります。 。私自身を例に挙げると、「Windows Core Programming」を読んだとき (内容の 3/4 しか読んでいません)、本のコードをコピーするだけでなく、合計 5574 行のサンプルを自分で書きました。 Unix で wc ツールを使用した統計)、何日も経つと Windows のシステム プログラミングを思い出すことができなくなりますが、前のコードを掘り出して見るのに数分かければ、再び理解できるようになります。これは、良い記憶力は悪い文章より悪いという格言です。

ソースコードを注意深く読み、慎重にコピーし、演習を独自に完了してさらに実験を行い、最後にすべてのコードを残して自分の経験と財産にしてください。これは絶対に大変な作業であり、半分で間違いなく2倍の結果になります。努力。もちろん、この方法は熟練を必要とする技術の学習にのみ適しています。C 言語を学習していない場合は、特定の状況を分析する必要があります。

この記事の最後に、言及されていない非常に重要な点があります。コーディング スタイルです。学習の最初から、最善のコーディング スタイルを真似する必要があります。コーディングスタイルは非常に重要であり、内容が多すぎるため、特別な記事を使って詳しく説明します。「プログラマーの道─コーディングスタイルについて」に注目してください。

ここで一時停止してください。上で述べたことは私の学習スタイルです。私は常に紆余曲折を経て、何度か混乱し、その後突然悟り、悟りを得る必要があります。私ほど愚かな人を見たことがありませんでしたが、私は最初はいつも物事を複雑にしすぎて、犬がハリネズミを噛むような恥ずかしい状況を引き起こしますが、予期せぬ利益もあります。しかし、少なくともガールフレンドを追いかける場合には、このスタイルを真似することはお勧めしません。人生の多くのチャンスはあなたが引き継いだ瞬間にあり、それを失ったら決して取り戻すことはできません。

その後、偶然、一行のコードを理解したのですが、そのときはとても興奮して、いろいろなことを一度に理解しました。 、まるで一瞬で何かに引っかかったかのように、すぐに悟りました。 。 。 。

しかし、やはり、破綻しなければ成立しない文章であり、止めることもできない。パソコンがある今のように、一日中インターネットの海に浸かり、落ち着いて何かを考えることができなかったファストフード文化を感じています。

C 言語について学習したことのある友人は皆、「楽しいし、不安もある」という感情を抱いていると思いますが、幸いなことに、C 言語は非常に強力で、一度習得すると広く使用されます。自信を持って他の人に「私はコンピュータの専門家です!」と言えるようになり、将来的には自分で他の言語を学ぶのも簡単になります。心配なのは、C言語は「少林寺拳法」と同じくらい奥が深くて、習得するのが難しすぎるということです。実際、著者は C 言語は「難しい」ものではないと考えています。自分の考えを明確にし、その本質をマスターすることができれば、C 言語の独学は非常に簡単で無限に楽しめます。今日はC言語を学ぶ方法、またはC言語を学ぶ上でどのような点から始めるべきかについてお話します。

私の個人的な経験から言えば、どの言語を学ぶにしても、まず学んでいる言語の背景や発展の歴史を理解する必要があります。 C言語は高級プログラミング言語の一種で、その前身となるのが「ALGOL」です。創設者はブラウン W. カーニハンとデニス M. リーチでした。 C 言語が登場したとき、UNIX システムでのみ使用できたため、大きな制限がありました。しかし、科学技術の進歩とコンピュータ産業の発展に伴い、C言語はUNIXから徐々に離れていきました。 1987 年に、米国規格協会が「ANSIC」と呼ばれる C 言語の国際標準を策定して以来、C 言語は広く使用されるようになりました。 C 言語には多くの利点があり、主な利点は次のとおりです:

高水準言語と低水準言語の両方の利点を備えており、中間言語です。

これは構造化プログラミング言語であり、構造化プログラミングに非常に適しています。

豊富なデータ型、演算子、関数から選択できます。

メモリを直接操作するため、他のプログラムやドキュメントの修正や編集が簡単になります。

C言語を上手に学ぶにはどうすればいいですか?できるだけ早く使い始めたい場合は、コンピューターの特性をマスターする必要があります。 コンピューターの特性には次のようなものがあります。

コンピューターは問題の処理方法に非常に要求が高く、あらゆる可能性をコンピューターに伝えます。

コンピュータでは、プログラムの記述が正確かつ明確であることが要求されます。

コンピュータプログラミングには、強い全体的な視点と論理が必要であり、浮き沈みの問題はありません。

コンピューターは、その所有者に、問題を包括的に検討し、考えられるすべての状況と解決策を教え、冷静さと安定した精神を持つことを学び、コミュニケーションに使用される文章は明確で、単一の意味を持っていなければなりません。

どうすれば C 言語を早く学び、慣らし運転期間を早く乗り越えられるでしょうか? C 言語の文法規則を覚えて理解することはもちろん不可欠です。さらに、次の点にも注意を払う必要があります。

メンタルのバランスを整えましょう。「物事に満足せず、自分自身に悲しくもない」というレベルには到達できませんが、少なくとも衝動的にならず、成功を急がず、急いでも無駄になります。

自分自身の全体的な認識を培って、内側を見ずに小さくも大きくもなれるようにしましょう。

プログラム設計プロセスに従って厳密にプログラムを設計してください。 ルールのないルールはありません。

全体的な品質の向上に努めてください。プログラムは人間の思考の表現形式であり、問​​題に対処する際の人間の思考と言語の組み合わせです。あなたが客観的に認識している程度は、あなたが持っている知識に直接比例します。対処している問題を理解し、対処方法が分からなければ、プログラムを書くことはできません。

コミュニケーションを学び、もっとコミュニケーションを取り、お互いを補うことも非常に重要です。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート