2011年4月3日 星期日

K&R2心得//指標與陣列(下)

翻譯問題
常用在→最常見於用到



這一篇是因為這個問題引發的細部問題。
「 ( ) 和 [ ] 的優先權比 * 和 ++ 高」



命令列引數
int main(int argc, char* argv[])
argc : argument count (參數計數)
argv : argument vector (參數指標陣列)

命令格式:
執行檔檔名<空格>參數1<空格>參數2<空格>...<空格>參數argc-1

main參數處理方式如下:
argv[0] -> 執行檔檔名
argv[1] -> 參數1
argv[2] -> 參數2
    ....
argv[argc-1] -> 參數argc-1
argv[argc] -> NULL

標準版(ANSI C)規定argv[argc]是存著NULL指標。

因為main的引數宣告有一定的複雜度
在程式裡使用時,也會引起一連串的複雜度(增加程式本身複雜度和易讀性)

**++argv      =    (*++argv)[0](逐指標走訪、指向指標第一個字元)
                   ≠
*++argv[0]    =    *++(argv[0])  (逐字檢查)

指向函數的指標
int (*comp)( )    (還是看不太懂!)
       ≠
int *comp( )

複雜宣告(使用機會超少)
強迫轉型的寫法,常用在指向函數的指標時。(其實不一定)
C的語法設計要使宣告時與使用時的寫法盡可能一致。(講過了,就不標紅色了)

dcl函數(以後再來看)

沒有留言:

張貼留言