深入理解c指针_学习笔记_4.0指针和数组

第三章内容:深入理解c指针_学习笔记_3.0指针和函数
https://blog.csdn.net/haimaer/article/details/81450909
数组是一个很常用的工具:这个需要深入深刻的理解和吃透!!!
1:数组的内部不带有长度信息,若不传递长度,函数就没有标准的方法得到数组的终点。
故在函数处理数组时,大部分情况必须传递数组长度

2:数组是一片连续的同质元素集合。

3:二维数组:
      数据是按照行来存放在内存中,先放第一行,后第二行。。。一直到最后一行,也是一片连续的内存。

这里写图片描述

4:指针和数组的差别
  4.1:实现过程不同
这里写图片描述
  4.2:sizeof() 对数组和同一个数组的指针操作也是不同,对vector操作,返回20(4*5),而对pv操作,会返回4,也就是指针的长度。
  4.3:指针pv是可以重新赋值或修改内容的,而vector只能被调用,而无法被修改。

5:int * num[5]定义一个元素是整数指针的指针数组,数组有5个元素,每个元素都是(int*)类型的指针
        int (* num)[5]定义了一个数组指针,指向一个二维数组,元素的类型是int,一行有5个元素,多少行,不确定。

6:如果要传递多维数组,可以像下面这么写
这里写图片描述

7:若定义了指针 int * arr;
在函数中要来用其表示二维数组时,这种做法是错误的:arr [i] [j],因为arr没有被声明为二维数组,但是可以 (arr+i) [j],这样用一个下标写,可以解释为数组的内部偏移量

8:对于二维数组:
        &num[0][0]代表的是一个整数指针
        num是一个整数数组指针

9:多维数组,用到再看吧,这部分很少用到,以目前状态,稍微了解一下,也都看懂了,不敢细看,细看到时候也都忘光光,还得重新来。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值