■プログラミング
■メモ
■Windows
■MS Office
■ブラウザ
■開発環境
■C/C++
■VB系
■Java
■デバッグ
■ソース管理
■その他
現在アクセス中:1
1 2 3
for(int i=0; i<obj.GetLength(); i++){ // 処理 }
for(int i=0, length=obj.GetLength(); i<length; i++){ // 処理 }
5*10のint型配列変数の確保の例
1 2 3 4 5 6 7 8 9 10 11
int (*p)[10]; // 1つのポインタ変数であることに注意(*と[]の優先順位の関係) // 「4(int型)*10」Byteの大きさのデータを指すポインタ変数の宣言 // *p[10]だと「4(int型)」Byteの大きさのデータを指すポインタ変数10個の"配列"になってしまう // malloc(), free() の場合 p = (int(*)[10])malloc(5 * 10 * sizeof(int)); // 確保 free(p); // 解放 // new, delete の場合 p = new int[5][10]; // 確保 delete[] p; // 解放
※多次元配列も同様のイメージ。ただし、やはり一番左側の要素数以外は固定値にする必要がある。
1
#define ROUND(val) ((int)((val < 0.0) ? (val - 0.5) : (val + 0.5)))
#define ARRAY_SIZE(ary) (sizeof(ary) / sizeof(ary[0]))
※要素数が明示されている配列変数にしか使えない。ポインタ表現となっている場合は期待した値とはならない。
#define PRINT_VAR(fmt, var) printf(#var " = " fmt "\n", var);
1 2
// x は 0~1000 x = min(max(x, 0), 1000);