關於C語言的指標陣列與指標陣列的個人理解

2022-05-08 23:33:09 字數 1300 閱讀 3551

一、指標陣列與指標陣列

1,指標陣列

顧名思義,即乙個元素全部是指標的陣列,其形式與普通陣列相似,形式如 *a[n]。

在理解指標陣列的使用方式前,我先來說下我個人對陣列的理解。

比如一維整形陣列(形如int a[3]),其實是乙個具有3個整形元素的變數;二維整形陣列(形如int a[4][3]),可將其視為有a[4]和int[3]兩部分構成,將a[4]視為乙個一維陣列,其中包含a[0]、a[1]、a[2]、a[3],每個元素都是int[3]型別,比如a[0]包含a[0][0],a[0][1],a[0][2]三個元素;三維陣列以此類推...

指標陣列的元素既然是指標,那麼就可以將它的每乙個元素指向相同型別的其他元素(比如指向陣列)。

下面舉個例子說明指標陣列的使用方法  

1 #include2 #include3

4#define m 4

5#define n 367

void

main()818

}1920for(i=0;i//

為指標陣列賦值,將其元素指向二維陣列的第一維的元素

2124

25for(i=0;i//

列印出陣列

2631 printf("\n"

);32}33

3435

getchar();

36 }

view code

2,陣列指標

陣列指標是乙個指向陣列的指標,形式為  (*a)[n],既可以指向一維陣列,也可以指向二維陣列。當執行a+1操作時,它會跨過n個單位長度。

下面舉例子說明

1 #include2 #include3

#define m 4

4#define n 356

7void

main()818

}192021 printf("

利用b[i][j]方式列印陣列\n");

22for(i=0;i)

2328 printf("\n"

);29}30

31 a=&b[0];//

或者a=b,但前者可能更為準確

3233 printf("

利用a[i][j]方式列印陣列\n");

34for(i=0;i)

3540 printf("\n"

);41}42

43getchar();

44 }

view code

C語言指標陣列與陣列指標

初學者總是分不出指標陣列與陣列指標的區別。其實很好理解 指標陣列 首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是 儲存指標的陣列 的簡稱。陣列指標 首先它是乙個指標,它指向乙個陣列。在32 位系統下永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣...

C語言 關於指標陣列和陣列指標

一 指標陣列 按照語文的理解,我們知道指標陣列的中心詞是陣列,而指標是用來修飾陣列的定語。事實上在c語言中也確實是這樣,指標陣列,就是乙個陣列,乙個存放指標的陣列。它常用於指向若干字串,這樣使字串處理更加靈活方便。下面我們通過幾個例子來理解一下指標陣列 int arr1 10 char arr2 4...

C語言指標 指標與陣列

1 指標與一維陣列 2 指標與二維陣列 3 指標陣列與陣列指標 指標裡面最難的一種就是指標與陣列了,對於指標和二維陣列來說這裡面的關係比較複雜。牽涉到編譯器的原理和編譯過程。1 指標與一維陣列 指標是指向乙個記憶體的位址,一維陣列的陣列名代表一塊記憶體 這個陣列 的首位址,和陣列首元素的位址一樣,但...