2013年10月22日 星期二

解讀declaration時:
Read
     *  as "pointer to"   
     []  as "array of"   
     ()  as "function returning"
 
優先權和一般運算相同 

2013年10月16日 星期三

對電腦而言資料並沒有資料型態之分,int, double等等在電腦眼裡全都是二進位
指定資料型態的功用是告訴電腦這個資料的大小,以及怎麼對這筆資料做運算


資料型態 = 空間大小 + 運算方式

變數或函數名稱的本質

不管是什麼程式語言,變數名稱或函數名稱本質上只是一個reference,指向記憶體中的某個位址

例子1:
C語言裡
int x = 1;
int y = 2;
x = y;
執行x = 1時,C會在記憶體裡分配空間,存入1,然後讓x成為指向該記憶體位址的reference
執行y=2的過程也一樣。
至於x = y為什麼在C裡面不是解釋成"讓x指向y所指向的地方"呢?
那是因為C定義"等於"這個「運算」在兩個int型態的reference上的功能是:將y所指向的位址裡所存的值,複製到x所指向的位址。因此,變數名稱本質上只是一個reference。

例子2:
void func(int x)
    printf("%d", x);
C語言會將這個函數的程式碼放入記憶體的某個位址,然後讓"func"這個函數名稱reference到程式碼第一行的記憶體位址。所以函數名稱本質上也只是個reference