C中關於指標陣列的用法

2022-09-11 18:24:09 字數 398 閱讀 6033

1 typedef char(*ap)[5];2

3 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 認識到它是乙個指向某種函式的指標,...