C语言之旅(3)指针数组与数组指针
来源:互联网 发布:php 淘宝csv导入源码 编辑:程序博客网 时间:2024/06/08 02:57
指针数组和数组指针这两个词汇很容易让人搞混。这就涉及到语言的层面了。首先指针数组:指针的数组(是一个数组)。数组指针:数组的指针(是一个指针)。
可以这么理解指针数组是一个集合,数组指针是一个变量(或者理解为数学中的数)。
指针数组:int *p[4];前面我说过去掉变量名字就是类型,那么把p去掉就变成了int * [4]; 很显然这是一个拥有4个元素的数组,每个元素的类型是int *;int *;是指针类型,那么结论:这是一个包含4各个指针元素的数组。操作符的优先级是先看p[4]的,所以 int * 可以理解为一个整体。
数组指针:int (*p)[4];因为有小括号,所以肯定先看小括号里面的,去掉标量就是 int (*) [4];小括号里面剩下一个*。*号的其中一个作用就是声明指针,很明显就是这是一个指针,那么指针里面存的是什么类型的地址呢?现在就把*号去掉,剩下的是int [4];显然这是数组,所以这一个存有包含4个int类型元素的数组的地址的指针。
从上面的图中可以知道,这是一个指针数组,元素的类型是int *,是指针,所以这样复制是不对的,应该赋值指针类型的变量。
这个图中的赋值就是正确的。
上图可以看出来这是一个指针,是一个数组指针。这个变量的存储类型应该是一个int arr[4];这种样式的数组的地址。
这个就是正确的赋值。
接下来再让大家看一个图片。
从这个图中就可以印证我前面说的话,arr和&arr是不一样的,arr:数组首元素的首地址,这个元素是int 类型的。而&arr:是整个数组的地址。这个地址的类型是int [4];
所以大家要区分这两者的区别。
- C语言之旅(3)指针数组与数组指针
- C语言之指针数组与数组指针
- C语言:指针数组与数组指针
- C语言指针数组与数组指针
- C语言指针数组与数组指针
- c语言之指针(指向数组元素的指针与指向数组的指针)
- C语言之数组与指针
- C语言之数组与指针
- c语言之指针与数组
- c语言之指针与数组
- c语言之野指针与数组
- C语言基础之指针与数组
- 了解C语言之指针与数组
- 爬爬爬之路:C语言(八) 指针与指针数组
- C语言深度剖析之—指针与内存地址(函数指针,普通指针,指针数组,数组的指针,指针的指针)
- C语言深度剖析之—指针与内存地址(函数指针,普通指针,指针数组,数组的指针,指针的指针)
- C语言深度剖析之—指针与内存地址(函数指针,普通指针,指针数组,数组的指针,指针的指针)
- C语言指针与数组
- HTML学习
- Planning
- 记APP实现多语言(国际化)过程,兼容Android 7.0以上
- LeetCode||52. N-Queens II
- JDBC
- C语言之旅(3)指针数组与数组指针
- win10禁止数字签名
- 线性代数笔记(网易公开课)
- 第二次被mo意义续
- 动态HTML处理和机器图像识别
- Spring
- XListView请求网络数据
- vue.js之v-show 与 v-if
- 树的前序、中序遍历的递归和非递归实现