このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

主に配列

課題の確認:
  1. コマンドラインからの符号なし整数をビット表示
  2. ファイルの16進ダンプ
  3. asciiコマンド
  4. 新規:画像ファイルを読んで、縦横“サイズ”などを表示
  5. ファイルの扱いやエラー処理の常識を自習

履歴はとっておけ! バカな自分を振り返れば、進歩した自分に自信を持てる。

定数とは:


y = x + 5;
これをできるだけ低水準で解釈せよ。そのとき、5って何?

用語:
ポインタ算術:
  • ポインタと生アドレスは違う
  • ポインタ ± 整数
  • ポインタ - ポインタ
配列:


#include

char a0[] = {'a', 'b', 'c', '\0'};
char a1[] = {'x', 'y', 'z', '\0'};
char[] a[] = {a0, a1};
// char* a[] = {a0, a1};

char *b[] = {"abc", "xyz"};

char c[][4] = {{'a', 'b', 'c', '\0'}, {'x', 'y', 'z', '\0'}};

char d[][] = {{'a', 'b', 'c', '\0'}, {'x', 'y', 'z', '\0'}};

// オマケ xもa, b, cと同じにするには?
unsigned x0 = 0;
unsigned x1 = 0;
unsigned * x[] = {&x0, &x1};

main()
{
int i;
// a
for (i = 0; i < 2; i++) {
printf("a[%d] : %s\n", i, a[i]);
}
// b
for (i = 0; i < 2; i++) {
printf("b[%d] : %s\n", i, b[i]);
}
// c
for (i = 0; i < 2; i++) {
printf("c[%d] : %s\n", i, c[i]);
}
// x
for (i = 0; i < 2; i++) {
printf("x[%d] : %s\n", i, x[i]);
}
}