Objective-C 指向指针的指针

指向指针的指针是多个间接指向或指针链的一种形式。通常,指针包含变量的地址。当我们定义指向指针的指针时,第一个指针包含第二个指针的地址,该地址指向包含实际值的位置,如下所示:

作为指向指针的指针的变量必须这样声明。这是通过在其名称前添加一个星号来实现的。例如,下面是声明指向 int 类型指针的指针的声明:

  1. int **var;

当目标值被指向指针的指针间接指向时,访问该值需要应用 两次 星号运算符,如下例:

  1. #import <Foundation/Foundation.h>
  2. int main () {
  3. int var;
  4. int *ptr;
  5. int **pptr;
  6. var = 3000;
  7. /* take the address of var */
  8. ptr = &var;
  9. /* take the address of ptr using address of operator & */
  10. pptr = &ptr;
  11. /* take the value using pptr */
  12. NSLog(@"Value of var = %d\n", var );
  13. NSLog(@"Value available at *ptr = %d\n", *ptr );
  14. NSLog(@"Value available at **pptr = %d\n", **pptr);
  15. return 0;
  16. }

结果如下:

  1. 2022-07-07 00:41:45.687 demo[22087] Value of var = 3000
  2. 2022-07-07 00:41:45.687 demo[22087] Value available at *ptr = 3000
  3. 2022-07-07 00:41:45.687 demo[22087] Value available at **pptr = 3000

分类导航