C++知识回顾

指针

源自:最详细的讲解C++中指针的使用方法(通俗易懂)_c++指针-CSDN博客

入门:

指针就是内存地址,指针变量就是用来存放内存地址编码(计算机将内存换分为一个一个的字节,然后为每一个字节分配唯一的编码)的变量,不同类型的指针变量所占用的存储单元长度是相同的。

int* p = &a;

指针的const限定

写法:const 指向类型 *指针变量/ 指向类型 const *指针变量(const 在*前面)【表示不能通过指针修改被指向变量的值】

1.不能把一个const变量的地址 赋给一个 非const对象的指针

const double pi = 3.14;
double* ptr = π//错误,ptr是非const所指向的变量
const double* cptr = π//正确,cptr是const指针变量

2.允许把非const对象的地址 赋给指向const对象的指针,不能使用指向const对象的指针修改指向对象,然而如果该指针指向的是一个非const对象,可以用其他方法修改其所指向的对象

const double pi = 3.14;
const double* cptrf = π//正确
double f = 3.14;//f是double类型(非const类型)
cptr = &f;//正确,允许将f的地址赋给cptrf
f = 1.68;//正确,允许修改f的值
*cptrf = 10.3;//错误不能通过引用cptr修改f的值

3.实际编程过程中,指向const的指针常用作函数的形参,以此确保传递给函数的参数对象在函数中不能被修改

void fun(const int* p)
{
	...
}
 
int main()
{
	int a;
	fun(&a);
}
指针作为函数的形参,在主函数中,我们定义整形变量a然后将a的地址传递给了子函数,对于子函数来说,
他的形参就是用const修饰过 的整型变量p指向主函数里a这个变量
这样的一系列操作就使得我们不能在子函数中通过p间接引用a 来改变a 的值,因为a 是用const修饰过的作就使得我们不能在子函数中通过p间接引用a 来改变a 的值,因为a 是用const修饰过的

summary:非const指针限定的指针不能指向const变量;const指针限定的指针不能使用*p修改被指向的值

const指针

指针类型* const 指针变量, ...;【const在*后】

int a = 10, b = 20;
int* const pc = &a;//pc是const指针
pc = &b;//错误pc 是只读的
pc = pc;//错误pc是只读的
pc++;//错误pc是只读的
*pc = 100;//正确,a被修改

数组/字符串

见文章最详细的讲解C++中指针的使用方法(通俗易懂)_c++指针-CSDN博客

结构体指针

C++死磕基础之指针篇(四)--结构体指针的定义以及使用_结构体指针如何定义和使用-CSDN博客

vector

一维数组

详见:C++ vector 容器 | 菜鸟教程 (runoob.com)

二维数组:

【C++】详解vector二维数组的全部操作(超细图例解析!!!)_二维vector-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值