六月 23, 2010

電腦做什麼事
pydoing
is about »

tag cloud

» c pointer

C 語言的指標 指標是用來指向儲存指向某個記憶體位址的資料型態,實際上我們須認識電腦管理記憶體好比一個長列,每一列都有以位元編碼的位址,每一位址都可儲存位元編碼的資料,示意圖如下 例如,我們宣告並指派初值 22 給整數變數 a ,編譯器將變數 a 放在 0110 的記憶體位址裡,稍後我們再宣告另一個指向 a 的指標變數 aPtr ,假設編譯器 aPtr 放在 1001 的記憶體位址裡,如下圖所示 因此,指標變數 aPtr 的內容為變數 a 的記憶體位址,如下 宣告 C 語言的指標變數,格式如下 * 為宣告指標所用的運算子,注意這跟乘法運算子一樣,編譯器會依上下文判斷星號用為宣告指標,還是用為兩數相乘。 很多情況下我們都需要直接操作記憶體位址,例如提升程式執行效率與建立資料結構。 C 語言中使用指標需要先經過宣告,如下列程式建立一個指標變數 aPtr


» c funptr

函數指標 函數雖然並非資料,然而編譯器實際會替函數的程式碼配置記憶體位址,當呼叫函數時,也就是控制權移轉給被呼叫函數的時候,程式執行便會轉移到該記憶體位址的地方。因此,呼叫函數可以直接用指標,這是 C 語言提供的動態機制,有許多不可取代的地方。 如下例為選單驅動程式的簡化版 #include <stdio.h> void fun1(void); void fun2(void); void fun3(void); int main(void) { void (*f[3])(void) = {fun1, fun2, fun3}; int i; for (i = 0; i < 3; i++) { (*f[i])(); } printf("\n上面以函數指標各自呼叫fun1、fun2、fun3...\n");


六月 20, 2010

電腦做什麼事
pydoing
is about »

tag cloud

» c derivedtype

C 語言的衍生資料型態 C 語言亦提供一些的衍生資料型態,包含可囊括多筆資料的同質陣列與異質結構,另外有可處理記憶體位址的指標, C 語言執行的基本單位函數等 指標 陣列 結構 聯合 函數 指標 指標是用來指向儲存指向某個記憶體位址的資料型態,實際上我們須認識電腦管理記憶體好比一個長列,每一列都有以位元編碼的位址,每一位址都可儲存位元編碼的資料,示意圖如下 例如,我們宣告並指派初值 22 給整數變數 a ,編譯器將變數 a 放在 0110 的記憶體位址裡,稍後我們再宣告另一個指向 a 的指標變數 aPtr ,假設編譯器 aPtr 放在 1001 的記憶體位址裡,如下圖所示 因此,指標變數 aPtr 的內容為變數 a 的記憶體位址,如下 宣告 C 語言的指標變數,格式如下 * 為宣告指標所用的運算子,注意這跟乘法運算子一樣,


biggo.com.tw

A Django site.