1 typedef char(*ap)[5];23 ap foo(char *p)49
10int main(void)11
結果是:"onalamb"
分析過程:typedef char (*ap)[5]; 宣告了乙個指向型別為char元素個數為5的一維陣列。
foo(s)[1]: 由於返回的型別是ap,相當於強制轉換,類似於 (ap)p 將p強制轉換為指向一維陣列的指標,同樣的元素個數為5。p[1] 現在指向了 'l'
最後,由於foo(s)[1] + 2, 再向後移動兩個元素,使得p指向了 'o'。
補充:foo函式的作用就是將 s 陣列中的 '\0' 變成: 'a'.
因此,得到了最後的結果: "onalamb"。
C 中關於指標陣列
汗乙個,今天上午因為 define n 5 後面加上雙引號了,找了半天錯誤 字面意思來講,陣列裡面每乙個元素都是指向某一型別物件的指標 由於指標陣列物件每乙個元素的型別為t t a new t 所以,指向這個陣列物件的元素物件的指標的型別為t 如下 include stdafx.h include ...
關於C的陣列指標
1 位址 陣列名就是乙個位址,指向乙個陣列的開端。下面舉幾個例子 includeint main int p a printf d n p printf d n a printf d n a 0 printf d n a 1 前面說過p是乙個指標指標的作用就是儲存乙個資料的位址 所以第乙個print...
關於在C和C 中函式指標的用法
關於c 中函式指標的使用 包含對typedef用法的討論 一 簡單的函式指標的應用。形式1 返回型別 函式名 參數列 char pfun int char glfun int a void main 第一行定義了乙個指標變數pfun。首先我們根據前面提到的 形式1 認識到它是乙個指向某種函式的指標,...