タグ

c言語とpointerに関するyuisekiのブックマーク (6)

  • C 言語にポインタがある理由は省メモリ化・高速化・開発作業の省力化です - 偏見プログラマの語り!

    前回の記事『プログラム初心者にC言語のポインタを不意ながら教える羽目になったなら、こう教えると良いよ』でポインタの教え方を書きました。ソレに対して「そもそもどうしてポインタっていう仕組みがあるの?」という質問をもらったので、つらつらと書こうと思います。稿は「ポインタがある理由の教え方」ではなく「ポインタがある理由」です。分かっている人には相当に退屈な文章ですのでそういう人は読まずにお帰りください。 で、えーと、結論だけ先に言うと省メモリ化のため、次に速度アップのため、そして生産性アップのためです。 1. メモリは有限である。 マシンに搭載されているメモリには限りがあります。メモリ空間は広大ですが、無限ではないのです。 好き放題にどんどんメモリを使ってデータを格納するわけにはいかないというわけです。しかしプログラムは計算のためにメモリ空間を占有します。仮に↓こんな感じに、わずかな有限メモ

  • ポインタの話(おまけ) - C言語 - 碧色工房

    前回までポインタなお話でしたが、 間に挟めなかったちょっとしたことについて解説 ストリング(文字列) アルバイトでTA(ティーチングアシスタント&テクニカルアシスタント: 詰まるところプログラムとかを大学生相手に教えるお仕事)なんてやってる私ですが、 やはり初心者にとってC言語における文字列ってのはハードルが高いらしい。 一度理解してしまえばどうってことはないんですが・・・ C言語では一文字を表すのは char 型、文字列はその集合なので char 型の配列として表現されます。 しかし、配列は長さを保持できないし、配列の長さと文字列の長さも異なる場合が多いため、文字の羅列だけでは情報が足りません。 そこで、Cでは終端文字(ヌル文字もしくはナル文字、NUL 文字(NULL ではない))を使っています、 この文字が現れるまでを一つの文字列として扱かわれるわけです。 終端文字として扱われるのは文

    ポインタの話(おまけ) - C言語 - 碧色工房
  • ActiveXコンポーネント製品 ☆ FukuRiko's WebSite ☆ C言語ポイント学習

  • Cでのポインタの読み方

    Cでのポインタの読み方 Cのポインタの読み方は、ルールを知らないと摩訶不思議です。 ルールを覚えれば、 int (*p[5])[3]; char (*(*fp)(void))(int); なんてのも解読する事ができます。 大事な前程 ポインタを読む際には、「英語で読む」必要があります。 「え~、英語~」 と思う方もいるかもしれませんが、逆に日語で読む方が大変です。 基ルール ルール 後置演算子が優先。 関数の() 配列の[] 前置はあとで。 要は、「後ろに何かあったら、後ろが優先」です。 演算子の英語での読み方 * pointer to ... () function returning ... [] array of ... Lesson 1 まず、演算子が単独で出てくる場合です。 Lesson 1-1 pointer to ... int *p; これは、まずpを見ましょう。 i

  • TAILQ のソースを読んで C のポインタをマスターする。 - こせきの技術日記

    正月は TAILQ のソースを読んでいた。普段 C を読み書きしないので、とても勉強になった。ポインタの使い方がわかった(ような気持ちになれた)。 TAILQって? TAILQ は C のマクロで書かれた双方向リンクリストの実装。 連結リスト - Wikipedia BSD、OSX や glibc に含まれている。 http://freebsd.active-venture.com/FreeBSD-srctree/newsrc/sys/queue.h.html http://sourceware.org/git/?p=glibc.git;a=blob_plain;f=misc/sys/queue.h;hb=HEAD 基的な使い方は以下のページが参考になった。 Tail queue(TAILQ) C言語系/「デーモン君のソース探検」読書メモ/14, man.conf - Glamenv-S

    TAILQ のソースを読んで C のポインタをマスターする。 - こせきの技術日記
  • やばい、俺ポインタわからないっすよ!!! - 神様なんて信じない僕らのために

    やばい、宿題きた。 ポインタってのはあれだよ。 「『難しい難しい』と云っている人が考えているほどには難しくない」 けど 「『簡単簡単』といっている人が考えているよりは簡単じゃない」 んだよ。 ... あ、ポインタと配列が違うということがはっきりわかる事例をこれとは別に一つ挙げること :-) >いそぴー 404 Not Found ヤバイッ。 今日は9時に帰ろうと思ったけれど、 結局10時過ぎに……。14時間労働後の宿題なので自信なし。(言い訳 ポインタを理解してないことが見破られ兼ねないッ!!! なので朝やります。 とりあえず、書けてなかった事を追記。 と、自分がまず第一にポインタと配列を隔てるのは(似たような表記で書かれようと) 「置かれる場所が違う」 「構文の意味が違う」 ってことだと考えてます。 int main() { char* message1 = "Hallo World."

    やばい、俺ポインタわからないっすよ!!! - 神様なんて信じない僕らのために
  • 1