C語言指標的理解

2021-09-29 12:00:54 字數 1423 閱讀 4117

#include

intmain()

;int

(*p1)[2

],(*p2)[2

],*p3,

*p4,

*p5;

宣告2個陣列指標,和3個普通指標

p1=arr;記住p1是陣列指標,是指向陣列的

printf

("%d\n",(

*p1)[0

]);輸出陣列裡的第乙個元素

p1++

;指標自增,自增按陣列單位自增,這裡看成一維陣列的話,乙個陣列單位就是3,相當於指標下一行了

printf

("%d\n",(

*p1)[3

]);陣列第二行的第三個元素

p2=&arr[0]

[0];p2也是陣列指標

printf

("%d\n",(

*p2)[0

]);陣列指標指向陣列,輸出陣列第乙個元素

p2++

;陣列指標按陣列單位數自增

printf

("%d\n",(

*p2)[3

]);同樣也是第二行第三個元素

p5=&arr[0]

[0];這裡要注意,p5是普通指標,這裡是第乙個元素的位址

printf

("%d\n"

,*p5)

;輸出第乙個元素

p5++

;單個變數自增,按照指標所指向的變數型別asii碼自增,如果這裡仍按照上面的*

(p2)[0

]是錯的,那是二維的

printf

("%d\n"

,*p5)

;輸出陣列第二個元素

p3=arr;p3也是普通單元素指標

printf

("%d\n"

,p3)

;輸出第乙個元素的位址。。。這裡故意的少了*號

p3+=4

;位置+

4,其實對應的asii碼應該加了16

printf

("%d\n"

,*(p3+

1));再加1,這裡括號加不加無所謂,因為*號的優先順序低

p4=&arr[0]

;p4也是普通指標變數

printf

("%d\n"

,*p4)

;輸出陣列第乙個元素

p4++

;自增 printf

("%d\n"

,*p4)

;輸出陣列的下乙個元素

return0;

}

輸出結果如下:

本人也是c的菜雞,不怎麼用到c,純粹是想多了解點程式設計的知識,有錯勿噴,共同學習

C語言指標的理解

什麼是指標?指標也是一種變數,存放的是某塊記憶體的位址。我們知道,記憶體可以理解為是按位元組被分割成若干塊的,每一位元組都對應著乙個編號,並且這些編號從小到大依次排列,這個編號就是它的位址,獨一無二,而指標變數中的值就是這些編號 例如如下 的結果 include include int main 這...

C語言 指標的理解

要理解c語言 中指標的意思,最好的方法就是畫表。先從最簡單的 開始,用畫表來分析。例1 include studio.h intmain void 可以這樣畫表 因為0x1000位址裡存放的變數a是int型別,所以指向變數a的指標型別是int 同理,如果變數a的型別是unsigned char,則指...

C語言 指標理解

剛剛程式設計遇到了乙個問題,如下 include struct nodetree 101 int loc node creat bool build node t,char c return true intmain return0 預期結果,我本來想達到一種效果,就是將t傳進去,然後對t做修改,返...