指標使用小結

2021-07-02 19:12:08 字數 1018 閱讀 2869

1.簡單定義

int a=100;

int *p;

p = &a;

pringf("%d",*p);

2.指標與形參實參

p1 = &a;

p2 = &b;

temp = *p1;

*p1 = *p2;

*p2 = temp;

p1,p2值變,a,b值也變。

int *p;

p = p1;

p1 = p2;

p2 = p;

此時僅指標指向變,a,b值不變。

3.指標與陣列

p = &a[0];  //p的值是a[0]的位址

p = a;  //p的值是陣列a(即a[0])的位址

陣列名只代表陣列首元素的位址。

p+1指a[1]的位址。

*(a+5)與a[5]等價。取陣列第六個元素的值。

p[i]相當於*(p+i),即a[i]的值。

兩個位址不能相加,p1+p2是無實際意義。

*p++等價於*(p++),因為*與++優先順序相同。先引用p的值,實現*p的運算,再使p自加1.

++(*p)表示p所指的元素值加1.

表示形式含義a

二維陣列名,指向a[0],即0行首位址

a[0],*(a+0),*a

0行0列位址

a+1,&a[1]

1行首位址

a[1],*(a+1)

1行0列即a[1][0]首位址

a[1]+2,*(a+1)+2,&a[1][2]

1行2列即a[1][2]首位址

*(a[1]+2),*(*(a+1)+2),a[1][2]

1行2列即a[1][2]元素的值

int(*p)[4]表示定義p為乙個指標變數,指向包含4個整型元素的一維陣列。

指向函式的指標和多重指標待補充。

指標使用小結

結合示例 總結一下 指標的各個概念及指標變數在函式中的傳遞與應用 如 int a 3 int point a 設記憶體分布如下 address 變數名 值 0x300000 a 3 0x500000 point 0x300000 指標變數 用於儲存其他變數的空間位址 point 0x300000 指...

C 中指標使用小結

1 宣告指標 typename pointername 2 給指標賦值 對變數名用 運算子,來獲得被命名的記憶體的位址,new運算子返回未命名的記憶體的位址。3 對指標解除引用 對指標應用解除引用或間接運算子 來解除醫用 4 陣列名 陣列名被視為陣列第乙個元素的位址,但是陣列名為常量,不能修改它的值...

C語言指標使用小結

小結下自己對c語言的指標使用的理解。1,呼叫函式實現指標的申請與釋放。在開發中需要重複使用某個指標型別,為此專門寫了一組處理該型別的函式,最基礎就是該指標型別的申請與釋放。常見的錯誤是通過傳入乙個一級指標來實現指標的申請或釋放。測試用的資料型別 typedef struct mystruct mys...