23、C++ 指针与智能指针全解析

C++ 指针与智能指针全解析

1. 动态数组与素数判断

在动态分配数组时,无法为数组元素指定初始值,需要使用显式赋值语句来设置元素的值。例如在判断素数时,与之前的方法相比,有了改进。当用现有的素数对候选数进行试除时,一旦试除到候选数的平方根对应的素数,就停止试除,这样能更快地找到素数,这里使用了 <cmath> 头文件中的 sqrt() 函数。在 do while 循环条件中,使用数组表示法来比较下一个素数除数和限制值,这样既展示了其可行性,也比指针表示法更易于理解。

当输出所需数量的素数后,需要使用 delete 运算符从自由存储区中移除数组,并且不要忘记加上方括号以表明删除的是数组。之后,最好将指针重置,虽然这不是必需的,但养成在释放指针所指向的内存后重置指针的习惯是很好的,因为后续可能会向程序中添加代码。当然,如果使用 vector<> 容器来存储素数,就无需担心元素的内存分配和删除问题,这些都由容器自动处理。

2. 通过指针进行成员选择

指针可以存储类类型对象的地址,例如 vector<T> 容器。对象通常有操作自身的成员函数,如 vector<T> 容器有用于访问元素的 at() 函数和用于添加元素的 push_back() 函数。以下是一个示例:

std::
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值