2020 12 07 學習陣列 指標

2021-10-11 01:53:59 字數 1185 閱讀 1828

1.array[num]

2.*(array+num)

3. *(p+num)

陣列名是陣列的首位址,故可以像指標那樣來操作取值

但是不能像指標那樣對位址進行操作,類似p++(array++)

陣列名歸根結底是常量,是代表乙個位址(指標是乙個變數)所以沒法執行array++這樣的操作

陣列和指標表示

date+2==

&date[2]

;//相同的位址

*(date+2)

==date[2]

;//相同的值

int *p是可以指向int型別位址的指標

記憶體中是以位元組劃分的,乙個位元組代表乙個編號,這個編號就是位址。

定義多個指標要int *p,*q(都要加)

指標四要素

指標本身的型別

int

*p的型別是int

*

指標所指向變數的型別

int *p所指向變數的型別是int

指標的大小

根據編譯器,32位機為4byte,64位機為8byte

指標的值

指標變數裝的是它指向物件的位址

在指標前加*運算子可以得到該指標指向物件的位址所儲存的值

指標+乙個整數或自加,偏移的是該型別的位元組大小,比如int

*型別的指標加一偏移的是4byte。

int*p的型別是int

*int data[

5]的型別是int[5

]

'++'

'--'的優先順序和'*'一樣

在執行*p++這條語句的時候結合性是從右往左的,先++再取值

eg:int buf=

;int

*p=buf;

printf

("%d"

,*p++);

//這裡的值為1

printf

("%d"

,*p)

;//這裡的值為2

'*'的優先順序高於'+'

*(date+2)

;//date第三個元素的值

*date+2;

//date第乙個元素的值+2

陣列,指標陣列,陣列指標的學習理解

本文將以如下定義的陣列及指標為例,對陣列,指標陣列,陣列指標進行說明。這是看完書後總結的,所謂好記性,不然爛部落格,想將這些總結記下,以便需要時進行重溫。如有理解上的錯誤,望大家指出。int a 3 3 int p0 3 int p1 4 int p3 int p4 1 二維陣列 a 二維陣列名 a...

學習指標引用陣列

首先陣列 a 10 的名字就代表乙個位址,是陣列第乙個元素的位址,即 a 0 int p p a 就是將指標指向陣列a的第乙個元素 或者int p a 與int p a 0 是一樣的 p 1的意思不是將位址直接加1,而是代表同一陣列中下乙個元素的位址,即 a 1 也可以用a 1表示。所以 p 1 a...

指標陣列的學習

本章主要講解的內容是如何通過指針對二維陣列進行遍歷 首先,講解一下二維陣列,int a 3 3 二維陣列的數學概念就是乙個3 3階的矩陣形式,而實際中,二維陣列在記憶體中是一維線性排列的 我們先定義乙個指向a的指標p,int p 4 a。其中的優先順序高於 如果我們不帶上括號,就會變成 int p ...