int a = 90; int *p; p = &a; // p 存儲 a 的地址
*p = 20; // 間接修改 a 的值
類型 *變量名,* 是聲明標識,非變量名一部分。int* 只能指向 int;未初始化指標不可間接訪問。char a = 'A';
char *p = &a;
char **pp = &p;
char ***ppp = &pp;
二級指標常用於「修改一級指標的值」(如函數分配內存返回指針)。
int sumAndMinus(int a, int b, int *minus) {
*minus = a - b;
return a + b;
}
int main() { int m; int s = sumAndMinus(12, 8, &m); }
*(p+i) 或 p[i] 等價。p+1 指向下一元素,步長為元素類型大小。char c1[] = "name"; // 字符數組,可修改內容
char *c2 = "name"; // 指向字符串常量,不可修改內容
char *c3 = "name"; // c2 與 c3 指向同一常量區地址
char *names[3] = {"jack", "rose", "tom"};
char *func() { return "str"; }void (*p)(); p = func; (*p)();返回類型 (*指釖名)(參數列表)。