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...