顯示具有 陣列 標籤的文章。 顯示所有文章
顯示具有 陣列 標籤的文章。 顯示所有文章

2010年2月6日 星期六

C/C++筆記-使用memset加快二維陣列初始

一般方法是用雙迴圈來設定二維陣列的值
這裡使用memset來設定陣列初值
##ReadMore##
#include &ltcstring&gt

const int X_SIZE = 60;
const int Y_SIZE = 30;

int matrix[X_SIZE][Y_SIZE];

inline void init_matrix() //使用inline加快
{
  memset(matrix, -1, sizeof(matrix));
}


2009年10月5日 星期一

JAVA筆記-取得陣列個數

int[] i = new int [10];
int len = i.length; //len=10

JAVA筆記-建立多維陣列

##ShowAll##
int m[][] = new int [2][3]; //生成多維陣列

int m[][] = new int[][3]; //不合法
int m[][] = new int[2][]; //合法,生成動態陣列
m[0]= new int[3];
m[1]= new int[5];

/* 若要變動陣列大小,需重新new物件 */

2009年9月19日 星期六

C/C++筆記-取得陣列個數

/* 用除法的方式 */
int number = sizeof(array)/sizeof(array[0]);

C/C++筆記-assert防止陣列索引溢出

/* 叫用#include <assert.h> 來檢查有無超過範圍 */
int primes[] = {2,3,5,7,11,13,17};
int index = 10;
assert(index < (sizeof(primes)/sizeof(primes[0]))); assert(index >= 0);
std::cout << primes[index] ; /* 用起來其實很累人,但一些大型source code,會看到在用 */
##ShowAll##

2009年9月11日 星期五

C/C++筆記-指標意義、指標運算、陣列指標

//&運算子的意義為:取得變數的記憶體位址
//*運算子的意義為:取得變數的記憶體值

int *ptr,a;
ptr = &a;
ptr++; //將指標ptr指向變數a的後4個bytes
ptr = ptr - 20; //將指標ptr指向變數a的後20*4個bytes

int *ptr,a[10];
ptr = a+5;
printf(%d %d,*a,*ptr) //會印出陣列a[0]的數值和a[5]的數值
##ShowAll##

2009年8月15日 星期六

C/C++言筆記-將陣列傳遞進函式

void func(int a[])
{
  int temp = a[1];
}

int main(void)
{
  int a[2]={3,6};
  func(a);
}
/*
 * 若是多維陣列,第一個陣列要給予數字才能索引
 * int a[10][10]; 合法
 * int a[10][]; 合法
 * int a[][]; 不合法
 */
##ShowAll##
/