- Objective-C 基础
- Objective-C - 首页
- Objective-C - 概述
- Objective-C - 环境设置
- Objective-C - 程序结构
- Objective-C - 基本语法
- Objective-C - 数据类型
- Objective-C - 变量
- Objective-C - 常量
- Objective-C - 运算符
- Objective-C - 循环
- Objective-C - 决策
- Objective-C - 函数
- Objective-C - 块
- Objective-C - 数字
- Objective-C - 数组
- Objective-C - 指针
- Objective-C - 字符串
- Objective-C - 结构体
- Objective-C - 预处理器
- Objective-C - Typedef
- Objective-C - 类型转换
- Objective-C - 日志处理
- Objective-C - 错误处理
- 命令行参数
- 高级 Objective-C
- Objective-C - 类和对象
- Objective-C - 继承
- Objective-C - 多态
- Objective-C - 数据封装
- Objective-C - 分类
- Objective-C - 模拟
- Objective-C - 扩展
- Objective-C - 协议
- Objective-C - 动态绑定
- Objective-C - 复合对象
- Obj-C - Foundation 框架
- Objective-C - 快速枚举
- Obj-C - 内存管理
- Objective-C 有用资源
- Objective-C - 快速指南
- Objective-C - 有用资源
- Objective-C - 讨论
Objective-C - 指向指针
指向指针是指向指针的一种形式,也称为多级间接寻址或指针链。通常,指针包含变量的地址。当我们定义指向指针的指针时,第一个指针包含第二个指针的地址,第二个指针指向包含实际值的内存位置,如下所示。
作为指向指针的指针的变量必须声明为这种类型。这可以通过在其名称前面添加另一个星号来完成。例如,以下是声明指向 int 类型指针的指针的声明:
int **var;
当目标值由指向指针的指针间接指向时,访问该值需要应用两次星号运算符,如下面的示例所示:
#import <Foundation/Foundation.h>
int main () {
int var;
int *ptr;
int **pptr;
var = 3000;
/* take the address of var */
ptr = &var;
/* take the address of ptr using address of operator & */
pptr = &ptr;
/* take the value using pptr */
NSLog(@"Value of var = %d\n", var );
NSLog(@"Value available at *ptr = %d\n", *ptr );
NSLog(@"Value available at **pptr = %d\n", **pptr);
return 0;
}
当以上代码编译并执行时,会产生以下结果:
2013-09-14 00:41:45.687 demo[22087] Value of var = 3000 2013-09-14 00:41:45.687 demo[22087] Value available at *ptr = 3000 2013-09-14 00:41:45.687 demo[22087] Value available at **pptr = 3000
objective_c_pointers.htm
广告