2012年4月24日 星期二

指標有兩種看法
1.指標指向一個物件。
例如int *ptr是一個指標指向某物件,int代表被指物件的型態

2. 指標是儲存記憶體位址的變數
例如int *ptr是一個儲存記憶體位址的變數,記憶體位址的型態是int

(ptr指向變數a == ptr這個變數儲存了a的記憶體位址)

小細節:
ptr + 1會回傳一個指標指向下一個位址。記憶體位址要增加多少是看ptr指向的物件的型態

2012年4月22日 星期日

鏈結串列

http://codepad.org/agZ3XDUC

不管什麼操作都是要先判斷串列是不是為空的
也就是大致上都是長這樣子
if (head == NULL) {
    ....
}
else {
    // 非空時的處理
}

插入的寫法:
while (ptr->next != NULL) {
    ptr = ptr->next;
}
ptr->next = malloc(...);

走訪的寫法:
while (ptr != NULL) {
    // print node
    ptr = ptr->next
}

刪除整條串列:
while (ptr != NULL) {
    nextStudent = ptr->next;
    delete ptr;
    ptr = nextStudent;
}

2012年4月13日 星期五

1.
char table[17] = "0123456789ABCDEF";

2.
16進位的0~F轉成0~15:
char hexchar_to_int[17] = "0123456789ABCDEF";
for (j = 0; j < 16; j++) {
            if (num[i] == hexchar_to_int[j])
                break;
        }