Latest Entries

エクスプローラー

このカテゴリーでは,vimについての覚書などを書いていこうかなと思います.

最近よく使っているのがvimのファイラとしての機能.:Se というコマンドで,カレントディレクトリをエクスプローラを開くことができます(この機能のヘルプは :h file-explorer などで見ることができます).

デフォルトだと水平に分割されて使いづらいので,垂直に分割するように設定したほうがいいでしょう.私は次のように_gvimrcに書き込んでいます.

:let g:explVertical=1
:let g:explSplitRight=1

これで垂直分割できるようになりました.

この機能を使えば,ファイラーを使う機会が減って,編集作業がより効率的に行えるかもしれません.

ポインタと配列名

新たな疑問

前回,配列名だけで「配列の先頭へのポインタ」を表すといいましたが,その逆はどうでしょうか.つまり,「配列の先頭へのポインタがあれば,それは配列そのものを指すか」ということです.

答えはもちろんノーです.そのことを確認するプログラムは以下の通りです.

全文を表示 »

ポインター

C言語を学習するときの最初の壁がポインタと言われます.ですが,実際はそれほど難しいわけではありませんよ.

変数には有効範囲(スコープ)というものがあり,C言語の場合,基本的に生成した関数の中でしか変数が有効ではありません.その有効範囲の壁を越えて,他の関数で処理させるためにポインタというものが使われます.

そこで今回は,なんとなくそのことを確認できるプログラムを作ってみました.

普通の変数のほうはまぁ当たり前な結果がでますが,ひとつ意識しておいたほうがいいのが,配列の先頭へのポインタ です.

確かに &a[0] でも間違いではありませんが,普通こんなこと書きませんよね?a (配列名) だけで,配列の先頭を指すことができます.

普通に使っているだけに,言われて,「・・・ああ!」ということもありますからねぇ.

文字列をソートする

strcmp と qsort を用いれば,文字列をソートするプログラムができます.

qsortって便利ですよね.比較関数さえ用意すれば,それほど迷うことなく作れます.

こういうプログラムを作れば分かりますが,一つ前に作ったプログラムのint_cmp と, 標準ライブラリのstrcmp って,似ていますよね.

qsort 関数

アルゴリズムの講義でいろいろなソートを習いましたが,標準ライブラリにも qsort という関数があります(2分探索のときに,実際に使いましたね).

確認する意味で,簡単な qsort を使ったプログラムを作ってみました.

どうすれば降順にならぶかとか,double型を扱う場合はどうすればいいかとか,いろいろ試してみてはどうでしょうか.

bsearch もほぼ同様のシグネチャをしていますので,合わせて覚えておくといいかもしれません.

余談ですが,どちらも 関数へのポインタ というものを使います.この「関数へのポインタ」というのが中々便利ですよ.

«  | HOME |  »

2008-08

  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • »

MONTHLY

CATEGORIES

RECENT ENTRIES

RECENT COMMENTS

RECENT TRACKBACKS

APPENDIX

s.s.

某大学生