タグ

C言語に関するUhoNiceGuyのブックマーク (6)

  • プログラム初心者にC言語のポインタを不本意ながら教える羽目になったなら、こう教えると良いよ - 偏見プログラマの語り!

    僕がプログラミングに触れた当時は、プログラミングといえば「まず C 言語」でした。それから 10 年以上が経ちました。学校の授業や企業の研修では未だに C 言語を教えているところがあるようです。関数型プログラミング言語という波が来ている 2012 年にもなって未だに C 言語をやっているというのはまるで進歩が無く残念な気もしますが、比較的多くのプログラマに浸透している共通言語を最初に教えるというのは、一方では喜ばしい事だと解釈する事もできるのかもしれません*1。まぁとにかく、意にせよ不意にせよ現場で プログラム初心者に C 言語を教える羽目になった 人がたくさんいて、プログラム初心者なのに C 言語を学ばざるを得なくなった 若者がたくさんいるということです。 C 言語を教えるときに避けて通れないのがポインタで、プログラム初心者が C 言語を学ぶときにやたらとつまずく人が多いのがポインタ

    プログラム初心者にC言語のポインタを不本意ながら教える羽目になったなら、こう教えると良いよ - 偏見プログラマの語り!
    UhoNiceGuy
    UhoNiceGuy 2024/06/24
    rustとかの流れ見ても、オブジェクトがメモリに配置されているって見方を意識することも大切だと思う。C→C++→Java、そしてrust等開発された歴史を知っておくことは有益だと思う
  • Linuxを生み出したリーナス・トーバルズが考える「優れたコード」とは何か?

    プログラミングをする上で、コメントをきちんと残したり、わかりやすい変数名をつけたりして「読みやすいコード」を目指す作業は重要です。しかし、「読みやすいコード」と「優れたコード」の間には、時として構造上の大きな違いがあるのも事実。そんな「優れたコード」に対するLinuxの開発者リーナス・トーバルズ氏の考え方について、エンジニアのmkirchner氏が説明しています。 mkirchner/linked-list-good-taste: Linus Torvalds' linked list argument for good taste, explained https://github.com/mkirchner/linked-list-good-taste Linus Torvalds: The mind behind Linux | TED Talk https://www.ted.co

    Linuxを生み出したリーナス・トーバルズが考える「優れたコード」とは何か?
    UhoNiceGuy
    UhoNiceGuy 2020/12/09
    こんなコード常人は思いつかないし、こんなコード常人は解説抜きでは何してるかわからない。天才の世界//ところでtargetが見つからなかった時の処理は書かれてる?
  • 例え話をしないC言語のポインタの説明 | 右や左の旦那様

    まえおき 巷では「プログラマーになりたい人に初学者にとって、ポインタという考え方がわけわかめ」という話がよくあります。 そこでいろいろな人が「ポインタは住所だ」とか「変数がハコで」とか手を変え品を変え分かりやすいように説明してくれています。 それでもなお「ポインタがわかりづらい」という人が後を絶ちません。 もういっそのこと、例え話をやめてド直球で攻めたらいいんじゃないでしょうか。 Hello, Worldより簡単に サンプルコード 以下のコードを考えます。 void main() { int a; int b; int c; a = 1; b = 2; c = a + b; } 「#include <stdio.h>」なんていう謎のオマジナイはこの際ナシです。あんなもの無くたってC言語は成り立ちます。 まぁ見ての通り、どこにも何も出力されませんが。 このプログラムは、「c = a + b」

    例え話をしないC言語のポインタの説明 | 右や左の旦那様
    UhoNiceGuy
    UhoNiceGuy 2018/02/01
    Cの規格書ってポインタとメモリアドレスって結びつけられてる?どこかでポインタとアドレスを同一視するなと読んだ覚えが。理想論か
  • C言語分かってなかった (I Do Not Know C) - Qiita

    Dmitri Gribenko氏によるBlog記事 "I Do Not Know C" より訳出。原文および訳文のライセンスは CC BY-SA 3.0 に従う。 この記事の目的は、皆に(とくにCプログラマに)「C言語分かってなかった」と言わせることです。 C言語の死角は思っているよりも身近にあり、よくある単純なコードですら 未定義動作(undefined behavior) を含む可能性があると示したいと思います。 記事は質問に対する回答の形をとります。全ての例示コードは別々のファイルに分かれていると考えてください。 (訳注:Qiita/Markdown表現の制約から、読中ネタバレ防止のため文章順序を変更しています。前半には質問のみを、後半には質問と回答の対を訳出しました。) 質問編 1.

    C言語分かってなかった (I Do Not Know C) - Qiita
    UhoNiceGuy
    UhoNiceGuy 2015/03/10
    わかってなかったというか無理ゲー
  • 定本 Cプログラマのためのアルゴリズムとデータ構造 サポートページ

    書の目次 なお詳細な目次はこちらをご覧ください。 第1部 アルゴリズムとデータ構造の基 1. アルゴリズムとは? 3. データ構造とは? 2. 計算量 第2部 基的なデータ構造 4. 配列 6. 木構造 5. 連結リスト 第3部 探索 7. 探索とは? 9. 二分探索木 8. ハッシュ法 10. 平衡木 第4部 整列 11. 整列とは? 15. マージソート 12. 単純な整列アルゴリズム 16. ヒープソート 13. シェルソート 17. 比較によらないソート 14. クイックソート 第5部 文字列の探索 18. 文字列の探索 19. 正規表現 第6部 いろいろなアルゴリズム 20. バックトラック法 22. メモリ管理アルゴリズム 21. 動的計画法 23. キャッシュ

    UhoNiceGuy
    UhoNiceGuy 2013/05/07
    短いDFAのサンプルが載っているらしい
  • C言語は今でも価値のある言語か?

    Couchbaseの作者Damien Katz氏は,C言語はバックエンドプログラミングにおいて現在でも優れた言語である,という意見を持っている。しかし他の開発者は,C言語はあまりにも欠陥が多いとしてC++Javaを支持するもの,あるいはいずれも好まないというものなどさまざまだ。 CouchDB の開発者であるDamien Katz氏は,The Unreasonable Effectiveness of C と題した先日のブログ記事において,C言語がバックエンドのための優れた言語であると断言した。氏はC++Java,さらにはErlangやRubyのようなより現代的な言語よりも,今後もC言語を支持していくつもりだという。ただし単純に,C言語を他のどれよりも優れた言語だと言っている訳ではない。"言語自体のパフォーマンスと信頼性が重視される場面においては,C言語に比類する言語は皆無である",別

    C言語は今でも価値のある言語か?
    UhoNiceGuy
    UhoNiceGuy 2013/01/28
    結論は結局こんなもんか
  • 1