指標簡單說明

2021-10-16 22:10:52 字數 2193 閱讀 4785

1.指標就是乙個變數的位址

`int

*p;//乙個指向整型的指標 p才是指標`

`p=&a;

//p指向a p是a的位址`

`a=12

*p也=

12``scanf

("%d"

,&a)

;scanf

("%d",&

*p);

scanf

("%d"

,p);

//p原來就是位址了不用&`

只有相同型別的指標變數才可以相互賦值

定義空指標

int *p = null

指標加減

2.指標加減

int *p = &a; 如果 p的值為2000,那麼p+2 p的值變為2000+2*sizeof(int)=2000+4 sizeof 統計位元組

3.二級指標

`int a,

*p,*

*pp;

a =2;p=

&a;//p指向a

pp=&p;

//pp指向p

*p=2;*

*pp=

2;`

4.指標作為引數
`int

main()

void

swap

(int

*p1,

int*p2)

`

5.1指標函式

一定要返回位址

`int*f

(int a,

int b)

``int*f

(int a,

int b)

`

5.2指向函式的指標
`int

main()

float

max(

int a,

int b)

`

6.陣列與指標

6.1一維陣列 陣列名是該陣列的首位址 int a[10] a表示a[0]

`int a[10]

; 元素a[i]的位址為a+i a[i]用指標表示*

(a+i)

int*p;

p=a 和p=

&a[0

]等價p++ p指向a[

1] `

`int

main()

`

6.2二維陣列與指標
` a[

0]表示第一行的首位址 也是a[0]

[0]的位址 a[

0]等價於*

(a+0

) a[i]

[j]的位址可以表示為a[i]

+j或者*

(a+i)

+j 元素值表示*

(a[i]

+j)*(*

(a+i)

+j)//第幾行第幾列

*a==a[0]

*a[0

]==a[0]

[0]*

*a==a[0]

[0]`

6.3行指標
`int

(*p)[5

];//定義乙個行指標p p可以指向乙個有5個元素的一位陣列

int a[3]

[5];

p=a;

//p指向第0行首位址 p+1指向第一行首位址`

6.4指標陣列
`int

*p[10];

//有10個指標變數 可以指向整型

char

*p[3];

//有3個元素 每個元素可以指向乙個字元陣列或者字串

char

*p[3]=

;//p[0]指向abc p[1]指向asd p[2]指向zxc`

7、字串與指標
`char c[10]

//*(c+i)表示第i個字元的位址`

`char a=

"computer"

;char

*p; p=a;

printf

("%s %s"

,p,a)

;//兩個都是輸入computer p為首位址系統輸出乙個字元後自動執行p++直到遇到「\0」結束`

FormatMessage簡單說明

常用引數簡介.formatmessage format message from system format message allocate buffer,null,lval,null,lptstr hlocal,0,null 第乙個引數是標誌,告訴這個formatmessage函式,我想要的特點...

Subversion 簡單說明

subversion 簡單說明 checkout 從源 管理伺服器取出 commit 提交更新的 到源 管理伺服器。update 從源 管理伺服器獲取 的最新更新。export 從源 管理伺服器匯出 匯出的 將脫離源 管理。revert 將當前資料恢復到最近與伺服器同步的版本,即放棄自己的所有未提交...

std deque簡單說明

本文 http blog.chinaunix.net u2 86575 showart 1734758.html std deque是乙個高效的雙端佇列,可以高效地進行插入和刪除操作。以sgi c stl為例 deque的基本結構是 有乙個map map中的元素是乙個記錄了乙個大小為512位元組的線...