首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言指針總結:指針數組、指向指針的指針、命令行參數、指針運算

     編輯:關於C語言

C語言指針總結:指針數組、指向指針的指針、命令行參數、指針運算

1. 指針數組與指向指針的指針

關係圖:
p → num[0] → &a[0] → a[0]=1
p+1 → num[1] → &a[1] → a[1]=3

2. 命令行參數:argc / argv

運行./prog arg1 arg2 → argc=3,argv[0]="./prog",argv[1]="arg1",argv[2]="arg2"

3. 指針運算:減法與比較

 p1) printf("%d\n", *p2);  // 5:同一數組指針可比較大小

規則:
• 只有指向同一數組的指針才能相減/比較
• p2 - p1結果是元素個數差,非字節差
• ptrdiff_t是有符號整型,打印用%td

總結圖譜

int a[3]           →  數組(連續內存)
int *num[3]        →  指針數組(存放int*地址)
int **p            →  指向指針的指針(指向num[0])
p[i] == num[i]     →  int* 類型(a[i]的地址)
*p[i] == **p       →  int  類型(a[i]的值)
argv               →  char** 類型(命令行參數指針數組)

指針是C語言的靈魂。理解指針數組vs二維數組、多級指針解引用、指針運算規則、命令行參數本質,能寫出高效、靈活的系統級代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved