C言語覚え書き

コンパイル

$ gcc -Wall -o hoge hoge.c

●終了ステータスの確認。

$ echo $?

●exit() 関数は が必要。

●文字列を格納する変数は char *hoge

char *hoge = "文字列"
char hoge[10] = "fuga"    //これはあまりよくないみたい
//(※追記 上の例は文字列は immutable で、下の例では文字列は配列であり変更可能。)

関数の引数にする場合は [] をつける(なくてもコンパイルエラーにはならないみたい)。

void f(char *s[]) {
    printf("%s\n", s);
}

●「conflicting types for 'func'」というエラーは、func 関数の定義の前にこの関数が使われているときに生じる。
関数定義の順番を変えるか、関数プロトタイプの宣言をしておく。
参考:関数プロトタイプ

関数内で宣言した配列変数をreturnしてはいけない - Gobble up pudding
これ、もろにやっていました(その例)。return 時に配列のポインタアドレスが消えてしまうからなのだな。

●関数に配列を渡すときは、配列とその要素数の2つを渡さないといけない。
関数内で sizeof(ar) / sizeof(int) などどやってもダメ。
参考:g-ishihara.com -  リソースおよび情報

●文字列の終端は '\0' だが、配列の終端というものはない。