char a = 'z'; char* b = &a; // 一級指針 char** c = &b; // 二級指針:指向 char* 的指針
c (地址 8092) ──→ b (地址 7230) ──→ a (地址 7230, 值 'z') char** char* char
c 類型 char**,值 8092(假設)。*c 即 b,類型 char*,值 7230。**c 即 a,類型 char,值 'z'。void alloc(int** pp, int n) { *pp = new int[n]; }
int* p; alloc(&p, 10); // p 被修改指向新內存
int** mat = new int*[rows]; for(i) mat[i]=new int[cols];int main(int argc, char** argv)。IUnknown** ppv 用於 QueryInterface 返回接口指針。語法同理:int*** ppp。實際工程中**極少超過二級**,三級通常意味著設計過度複雜,應重構。
char** c = &a; ❌ 類型不匹配(&a 是 char*)。