關係圖:
p→num[0]→&a[0]→a[0]=1
p+1→num[1]→&a[1]→a[1]=32. 命令行參數: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二維數組、多級指針解引用、指針運算規則、命令行參數本質,能寫出高效、靈活的系統級代碼。