發表文章

目前顯示的是 3月, 2007的文章

Array of pointer VS. Pointer to Array

。前言 這是二年級Programming Languages(語言結構)課程中有的內容,教導我們如何斷定一種複雜型態的方法,不過就在經過一年後的最近,我已經忘的差不多了,,在這上面的判斷上又錯誤了,而且還沒有頭緒處理,只能try on'error的將我要的部分測出來用。 。問題 請問下列的兩種宣告各為 Array of pointer 與 Pointer to Array的哪一種? int (*ptr)[10]; // no.1 int *ptr[10]; // no.2 。解題方式 - 非正規方法 依照優先權來判斷,優先權:()等於[]大於* int (*ptr)[10]; // no.1 小括號()的優先權等於中括號[]的優先權,不過運算處理順序是由左至右,所以()優先,使得*被先行配置,使整個型態是指標(Pointer),所以這個型態是指標。 This tpye is a 'poniter' that piont to an integer array with 10 elements. int *ptr[10]; // no.2 中括號[]的優先權大於星號*的優先權,所以[]被先行配置,使這個形態成為陣列,而這個陣列有10的元素,每個元素都是指標指向char。 And this type is an 'array' with 10 elements which is a pointer. 。應用 - 不定長度字串陣列 char *token_rpstr[] = { "BEGIN", "END", "READ", "WRITE", "ID", "INTEGER", "LPARN", "RPARN", "SEMICOLON", "COMMA", "ASSIGNOP", "PLUSOP", "MINUSOP", "SCANEOF", "COMMENT", "STRING&