关于指针数组与数组指针的总结
来源:互联网 发布:java 串口封装类 编辑:程序博客网 时间:2024/04/19 06:27
int *p[10];//指针数组
int(*p)[10];//数组指针
其实区别这连个,根本不用去理什么指针数组跟数组指针,理解它内在的含义更为重要!掌握分析它的方法更更重要。这里简单讲讲我理解的方法。
int *p[10] 是 *p[10] 为int 型, p[10] 为int * 型(也就是指向int型的指针),而再拆分p就是10个元素的数组首地址,那么合起来的意思呢,就是p[10]是含有10个元素的数组,其元素类型是int *型,也就是指向int型的指针。换句话说p里的元素都是指针。
int(*p)[10] 对这个的分析用上面那种拆分方法。(*p)[10] 是一个int型; 因为(*p)加了个括号,所以,*p放一起考虑,即p是一个指针。一个指针,后面跟着[10]是什么意思呢?我们看下,int a[10] 这个是平时定义数组是用的语句,a在这里是数组的首地址,地址也即指针,形式上跟int(*p)[10]其实是一样的,简单的说就是p指向了a的地址。
需要注意的是&a 与&a[0]之间的区别。&a表示 一个指向int [10] 的地址(指针), 而&a[0]是指向int型的地址(指针),尽管他们在数值上相等,都是表示数组的地址,但是意义不一样。前者是数组首地址,后者是数组首(第一个)元素的地址。故这里&a 可以把值赋给p,而&a[0]不可以,具体体现的差异是&a[0]+1会等于&a[1],而&a+1跨越整个数组(10个元素),实际上可以认为它是个二维数组了。另外常说的数组名a与&a 是没区别的,a是隐性类型转换为&a。
0 0
- 关于指针数组与数组指针的总结
- 数组与指针的总结
- 数组与指向数组的指针总结
- C中关于一位数组与指针和二维数组与指针的一点总结
- 关于数组与指针
- 关于数组与指针
- 关于指针与数组
- 关于指针与数组
- 指针与数组总结
- 关于函数指针数组与返回数组指针的函数
- 关于函数指针数组与返回数组指针的函数
- 关于函数指针数组与返回数组指针的函数
- 关于函数指针数组与返回数组指针的函数
- 关于函数指针数组与返回数组指针的函数
- 数组指针与指针数组的知识点总结
- 关于指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针
- 数组指针、指针数组、指向指针的指针使用总结
- c++关于数组,指针的学习总结
- js取整
- C++ void基础概念讲述
- 马云北大演讲,阿里巴巴为什么能活着?
- Codefoeces 404D Minesweeper 1D "小范围后效性"dp
- 生成所有可能的二叉排序树 Unique Binary Search Trees II
- 关于指针数组与数组指针的总结
- javascripte 中的移位操作符
- TCP和UDP的区别
- join/inner join/left join/right join区别
- 么么哒第一篇
- 不要在finally块中处理返回值
- C/c++中移位与负数表达的一点研究
- Native关键字---小笔记
- HDU 3442 Three Kingdoms BFS + 优先队列