putsとか配列とか(C入門中)

今日覚えたこと

ローカル変数はブロックの先頭で宣言する

シラナカッタ。変数は使う直前に宣言した方が分かりやすいヨネと思って、何の気なしに書いたら動かなかった。for文の()の中で、変数を宣言できないことは、知っていたけども。。。

puts関数
  • NULL文字を改行文字に置き換える。
    • つまり、終端NULLも改行になるので、文末に改行が入る。
  • 引数は×文字列 ◎文字列へのポインタ
    • つまり、puts("hoge")とした場合、hogeが入っているメモリ領域の先頭のアドレスが引数である
  • 戻り値は、「成功したら非負の値で、失敗したらEOF」。非対称。
配列について
  • 配列の宣言より前に、要素数をマクロで定義する方法
    • define を使う
  • 配列の宣言より後に、要素数を求める方法
    • sizeof(arrayname) / sizeof(arrayname[0]) を使う
  • []の違い
    • 配列の宣言の[]は、区切子
    • 要素にアクセスするときの([n]の)[]は、添字演算子

わからないこと

配列が初期化される場合とそうでない場合。たとえば、int型の配列の要素が、明示的に初期化しなくても0で初期化されるのがどんな場合か、まだ把握していない。