码迷,mamicode.com
首页 > 编程语言 > 详细

C++ | 数组与指针

时间:2015-10-01 20:24:49      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

int arr[4];  // arr 相当于是一个指针常量,及 arr 不能变,但是指向的地址对应的数据可以改变

int *p = arr;  // p 是一个指向 int 数据的指针,步长为 sizeof(int)

arr 和 &arr:

  - 值相同

  - 意义不同(即变量类型不同),&arr 整个数组的首地址,arr 是数组第一个元素的首地址

由此,arr+1 和 (&arr)+1 也就不用了。arr 步长为int,而 &arr 步长为 int[4]。

 

int arr[2][4];

int* p = arr;  // p 是一个指向 int 的指针,步长为1

int (*p1)[4] = arr;  // p1 是一个数组指针(其实叫行指针更贴切),步长为4

int* p2[2];  // p2 是一个指针数组

p2[0] = arr[0];

p2[1] = arr[1];

 

数组和指针:

  数组在进入函数之后会退化成指针,引用可以避免,但是目前我还没有发现这样做的意义何在。

  sizeof 或 +1(不能自增)就可以看到其区别了。

 

C++ | 数组与指针

标签:

原文地址:http://www.cnblogs.com/excavator/p/4850879.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!