2009-06-01から1ヶ月間の記事一覧

54章 時間と乱数

C

http://www.geocities.jp/ky_webid/c/054.htmlライブラリ関数の紹介ですね。今回は時間関係の関数と乱数についてのお話のようです。ここで覚えることは以下ですね。 tm構造体 time_t型 clock_t型 time関数 ctime関数 localtime関数 mktime関数 rand関数 sran…

53章 事前定義マクロ

C

http://www.geocities.jp/ky_webid/c/053.htmlC言語に予め存在しているマクロというのがあるみたいです。この章ではそれらのお勉強ということになりますか。 __FILE__ __LINE__ __DATE__ __TIME__ __STDC__ これだけの種類があるみたいです。全部四文字なん…

52章 プリプロセッサディレクティブ

C

http://www.geocities.jp/ky_webid/c/052.html前にもプリプロセッサの話はありましたが、今回はさらに詳しくディレクティブについての説明がありますざーっと読んだところで練習問題に入りましょう。 問題1 #ifをソースをコメントアウトする目的で使えます。…

51章 記憶クラス指定子と型修飾子

C

http://www.geocities.jp/ky_webid/c/051.htmlなにやらまたもや色々複雑そうな予感がしますよ。まずは記憶クラス指定子 extern指定子 static指定子 auto指定子 register指定子 typedef指定子 externとstaticは以前習いました。autoとregisterは覚えなくても…

50章 シフト演算子等

C

http://www.geocities.jp/ky_webid/c/050.htmlまた新しい演算子が出てきました。これはビットを扱うための演算子といっても過言ではないでしょう。 int main(void){ unsigned int num = 100; num = num << 2; printf( "%d\n", num ); return 0; } $ main 400…

55章 動的メモリ確保

C

http://www.geocities.jp/ky_webid/c/055.htmlさてさてまたまた難解な話になりそうです。 最後に、動的に確保されたメモリ領域は、通常の変数定義で確保される領域とは場所が異なります。単にメモリ領域といっても役割に応じて名称があります。動的なメモリ…

49章 ビット演算子

C

http://www.geocities.jp/ky_webid/c/049.htmlビットを扱うときに便利な演算子たちの愉快なお話です。 ビット単位の演算なので、2進数で考えます。しかし、C言語には2進数を表現する構文がないので、多くの場合16進数を使います。ただし、結局のところ…

48章 ビットフィールド

C

http://www.geocities.jp/ky_webid/c/048.html前回の記事でに共用体について調べてたときにビットフィールドについて少し書いてる記事を読んだのでなんとなくわかります。あるデータを1ビット単位で操作できるようにするための構文です。 問題1 1ビットのビ…

47章 共用体 union

C

http://www.geocities.jp/ky_webid/c/047.htmlなんだかややこしそうな名前のものが出てきました。実際にかなりややこしいです。というか全部読んでみたのですが、いまいちどういうものかわかりませんでした。その概念も難しい上に、これをどう活用するのかさ…

46章 列挙型 enum

C

http://www.geocities.jp/ky_webid/c/046.html列挙型というものが登場しました。ようは連番を簡単に定義できるもののようです。列挙型をうまく使いこなせば、配列へのアクセスにおいて可読性をあげることができるようです。確かに文字で定義されているほうが…

45章 コマンドライン引数を受け取る

C

http://www.geocities.jp/ky_webid/c/045.htmlとうとうこの話まできました。これでようやくコマンドラインからの起動時に引数を指定できるプログラムを作れそうです。 問題1 コマンドライン引数によって指定されたテキストファイルの内容を、画面に表示させ…

atoi関数を自作してみる

C

前回の記事でatoi関数という関数が出てきました。これくらいなら自作できそうだと思ったので作ってみることにしました。 int myatoi(char *str) { int num = 0; while(*str != '\0'){ num += *str - 48; num *= 10; str++; } num /= 10; return num; } int m…

44章 型変換関数

C

http://www.geocities.jp/ky_webid/c/044.htmlchar型からint型への変換とか色々そういう話。sprintfが凄い便利ですね。printfでフォーマットを指定して出力していたのが、変数に格納される関数です。 問題1 キーボードから2つの整数を入力させ、その加算結…

43章 関数ポインタ

C

http://www.geocities.jp/ky_webid/c/043.html関数のポインタとな。 戻り値の型 (*ポインタ名) (引数のリスト); これが宣言。よく覚えておくように。 関数ポインタは、あくまでもアドレスを保持するだけなので、参照先の関数が別に存在することになります。…

42章 多重間接参照

C

http://www.geocities.jp/ky_webid/c/042.htmlまたなにやら難しそうな名称が出てきましたね。ポインタのポインタですって!スーパーややこしそうです。 問題1 次のプログラム中の誤りを修正して下さい。 int main(void){ char str[81]; char *pStr = str; ch…

41章 scanfの詳細

C

http://www.geocities.jp/ky_webid/c/041.htmlprintfに引き続き、お次はscanfです。まぁprintf程そんなに覚えることはなさそうです。 問題1 10件分の郵便番号を入力させ、最後にそれを画面に表示するプログラムを作って下さい。郵便番号は、 ○○○-○○○○ という…

40章 printfの詳細

C

http://www.geocities.jp/ky_webid/c/040.htmlフォーマット指定子の一覧が載っています。何度も使うことになると思うので覚えれるだけ覚えておきましょう。 フォーマット指定子 意味 %d / %i 符号付き10進整数 %u 符号なし10進整数 %o 符号なし8進整数 %x 符…

39章 マクロの話

C

http://www.geocities.jp/ky_webid/c/039.htmlマクロの話までやってきました。マクロとはつまり今まで何度か使ってきた#defineのことです。 関数形式マクロの注意点 ここは必読ですね。全部読んだところで練習問題です。 問題1 引数で指定された整数の絶対値…

38章 ランダムアクセス

C

http://www.geocities.jp/ky_webid/c/038.htmlファイルを途中から読み込むための仕組みの話ですね。ファイルの現在地を表すカレントポジションというものがあります。ファイルをオープンした直後はカレントポジションは先頭に位置します。これを移動させるこ…

37章 バイナリの読み書き

C

http://www.geocities.jp/ky_webid/c/037.htmlさあファイルの読み書きも佳境に近付いて参りました。また難しそうな話がでてきましたよー。 総称ポインタ 別名、汎用ポインタとかvoidポインタとか呼ばれるポインタのことです。 総称ポインタは、どんな型のポ…

36章 テキストの読み書きその2

C

http://www.geocities.jp/ky_webid/c/036.htmlfprintfとfscanfというのが出てきました。名前の通りprintf、scanfとほぼ同じ仕様です。というか fprintf( stdout, "%s\n", str ); fscanf( stdin, "%d", &num ); のように書けば同じ動作になるのでファイルポイ…

点A(a,0)と点B(0,b)を通る直線

お勉強ある数IIの教科書に載ってた公式 点A 点B を通る直線Lは が成り立つ。という公式があったんだけど、何故そうなるのか分からなかったので色々計算してみたらようやく証明できたのでメモ。まず直線Lはいつもの公式 これに点B(0,b)を代入する ・・・(1) …

ある2点を通る直線の公式

お勉強。ある1点を通る直線の公式 - (void*)Pないとの続きですな。 点A 点B 直線L この場合、公式は となる。基本的にはある1点を通る直線の公式 - (void*)Pないとを同じですが、順を追って説明すると点Aは直線Lの傾きと切片が同じ直線Nとしてみた場合傾き…

ある1点を通る直線の公式

お勉強 点A 直線L この場合、公式は となる証明は簡単。点Aは直線Lの傾きと切片が同じ直線Nとしてみた場合傾き=m、切片=nなので となる。よって となり、それを直線Lに代入すると となり、最初の公式が導き出される。

35章 テキストの読み書きその1

C

http://www.geocities.jp/ky_webid/c/035.htmlここからが本番ですね。実際に読み書きを行いたいです。一文字読み込むfgetc関数一文字書き出すfputc関数ファイルの終端を調べれるfeof関数エラーの発生を検知できるferror関数複数文字読み込むfgets関数複数文…

ローカル変数のポインタの戻り値の話

C

やはり前回の記事のファイルポインタのstaticの話がどうも納得できないので色々調べてみました。ポインタ虎の巻〜スタックと自動変数 ローカル変数へのポインタを戻り値として返す関数について - 以下のコードは関数... - Yahoo!知恵袋どこを見てもやっぱり…

34章 ファイルシステム

C

http://www.geocities.jp/ky_webid/c/034.htmlさて、ようやくファイルのお話が出てきました。ここを覚えれば自分で何かファイルを開いて解析するようなプログラムを作れるようになれそうな気がします。fopenというのが出てきました。ファイルのオープンを行…

33章 構造体

C

http://www.geocities.jp/ky_webid/c/033.html複数のデータ型を一まとめに取り扱うことができるという構造体。またかなりややこしそうですね。構造体についての色々な話がざーっと書かれているのでちょっと頭がついていかない感じがします・・・。 構造体変…

32章 ファイルの分割

C

http://www.geocities.jp/ky_webid/c/032.htmlextern指定子というのが出てきました。概念的にはわかるのですが、いまいちこう何というかピンときません。使ってるうちに分かるようになってくるんでしょうか、ちょっと不安です。 静的グローバル変数 静的グロ…

31章 ポインタの配列

C

http://www.geocities.jp/ky_webid/c/031.html char str[] = "abcde"; char *str = "abcde"; これらの違いについて詳しく説明されてるのでこれはきっちり覚えないといけないですね。 ポインタの配列 と、言ってますが読み進めてたところ、そこまで難しく考え…