您的位置:首页 > 其它

OC 中数组和指针

2016-07-10 21:40 204 查看
int number[4]=[1,2,3,4];

int*p=number;

p+1;  //地址值+4    int  4字节  double 8字节

指针p+N:p里面存储的地址值+N*所指向类型所占的字节数

数组名:代表着数组的地址,也是数组首元素的地址

数组名:相当于是一个指向数组首元素的指针

numbers: 相当于&number[0] 等价于指向number[0]的指针

&numbers:等价于指向numbers数组的指针 它的跨度是整个数组

int numbers[2][2]={

   {10,20},

   {11,22}

}

number[0] 相当于&number[0][0]  指向number[0][0]的指针

number[1]相当于&number[1][0] 等价于指向number[1][0]的指针

number 相当于&number[0] 相当于指向number[0]的指针跨度为8

&number相当于指向number数组的指针。跨度为数组的字节数

结论

## 指针p的加减法运算

- 指针p + N

    - p里面存储的地址值 + N * 指针所指向类型的占用字节数

- 指针p - N

    - p里面存储的地址值 - N * 指针所指向类型的占用字节数

## 数组名

- 存储的是`数组首元素`的地址

- 等价于:一个指向`数组首元素`的指针

- `数组名 + 1` 的跨度:`数组首元素`的占用字节数

## 其他结论

- `&num + 1`的跨度:`num`的占用字节数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: