2020.7.31《c++ primer plus》学习日记

一。函数和数组
1.函数如何使用指针来处理数组
(1)c++将数组名解释为其第一个元素的地址,但此规则有一些例外:

1)数组声明使用数组名来标记存储位置。
2)对数组名使用sizeof将得到整个数组的长度(不是有多少元素,而是所有元素长度之和)。
3)如果int cookies[]有8个元素,且int长4个字节,那么&cookies将返回32字节内存块的地址。

(2)函数头两种正确格式
在这里插入图片描述在这里插入图片描述
(3)记住两个恒等式:
在这里插入图片描述
2.将数组作为参数意味着什么
(1)函数对数组的声明暗示了什么:
在这里插入图片描述

1)并没有把数组的内容传递给函数,而是将数组的地址、包含的元素类型以及元素数目提交给了函数。
2)传递常规变量时,函数将拷贝变量,使用的是变量的拷贝;
3)传递数组时,函数不用拷贝数组内容,而是将数组的地址、包含的元素类型以及元素数目提交给了函数,使用的是原来的数组。

(2)数组名与指针对应的优缺点

1)可以节省整个数组所需的时间和内存
2)但使用原始数据会增加破坏数据的风险,使用const限定符可以解决这个问题。

在这里插入图片描述

(3)如何使用sum函数计算数组第5-8个元素的总合呢?
在这里插入图片描述
(4)函数声明的正确与错误示范

在这里插入图片描述
3.指针和const
(1)让指针指向一个常量对象:(如下图,pt的声明并不意味着它指向的值实际上就是一个常量,而只是意味着对pt而言,这个值是常量。可以直接通过age变量来修改age的值,但不能使用pt指针来修改它)
在这里插入图片描述
(2)将const的指针赋给常规指针:不可行
在这里插入图片描述
(3)将指针本身声明为常量,这样可以防止改变指针指向的位置(如下图,在最后一个声明中,声明格式使得finger只能指向sloth,但允许使用finger来修改sloth的值)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值