とりあえずC言語のブラッシュアップ

iPhoneアプリ作る前にオブジェクティブCやる前にC言語をパーッと復習しよう、ということで
苦しんで覚えるC言語 - 苦しんで覚えるC言語
を最近読んでます。


以下ちゃんと理解してなかったところ、知らなかったところ。


1.改行文字 - 苦しんで覚えるC言語の\tの存在
主にprintf関数で表示結果を綺麗にまとめる際に使う。こういう表示ができるんだなぁ。知らなかった。


2.数値の桁揃え - 苦しんで覚えるC言語の%05dの存在
例えば%dの、%とdの間に数字を入れて桁数を綺麗に表示する方法があることは知ってたけど、桁数の前に0を入れる表示する方法は知らなかった。場合によってはこっちのほうが見やすいかもな。


3.比較を行う文 - 苦しんで覚えるC言語if文の真偽判断について
"if文では、指定された数値が真である(数値が0以外の)場合だけ横の文を実行します"って書いてあったけどこの根本的なのを分かってなかった。いつも==や>で比較しかしてなかったからだろう。ここらへんちゃんと覚えときたい。


4.練習問題7 - 苦しんで覚えるC言語if (-1) printf("OK\n");について
さっきの続き。今まで知らなかったからこんなif文書けるなんて知らなかった。恥ずかしい。。。


5.番号による場合分け - 苦しんで覚えるC言語case文の連続した使用の仕方について
"実は、caseは、複数を連続させて使うことが可能です"、と本文に書いてあったけどこれは知らなかった。無駄の無いコードを書くためには覚えときたい。

例えばcase文によって男性と女性を振り分ける場合

switch (no) {
	case 1:
	case 3:
	case 4:
		printf("男性\n");
		break;
	case 2:
		printf("女性\n");
		break;

という分け方が可能。


6.ループ動作の仕組み - 苦しんで覚えるC言語for文の仕様について
いままでfor文の無限ループには「;;」というコマンドを打ち込めばいいという認識だったけど違うんだな。for(;;)っていうのは条件を書かなかった結果生まれた無限ループだった。"for文では、どんな式を置いてもいいどころか、式を置かなくても構いません"というのをちゃんと理解していなかった感じ。


7.自作関数を作る - 苦しんで覚えるC言語プロトタイプ宣言について
単語の知識抜け。思い出せなかった。


8.練習問題11 - 苦しんで覚えるC言語戻り値について
ここも同様。しばらくやってないと忘れてくなぁ。そういえば初期の頃、引数を「いんすう」って読んでたこともあった。


9.関数内で寿命が尽きる変数 - 苦しんで覚えるC言語ローカル変数の寿命と関数の独立性
ローカル変数に寿命があることは分かっていたけれど、なぜ寿命があるかと聞かれたら説明できなかった。関数の独立性を高めるために寿命があるんだね。


10.関数内で生き残る変数 - 苦しんで覚えるC言語staticの存在
単語の知識抜け。staticを使うコードなんてほとんど書いたことないから忘れちゃうんだろな。



とりあえず今日はここまで。続きはブラッシュアップ2で。