7月27日汇总

理解C++中的只读变量与指针
本文介绍了C++中的只读变量(const)的用法,包括如何初始化和通过指针修改变量值。同时,探讨了只读指针变量和只读变量指针的概念,以及它们在内存管理中的差异。还提到了动态内存分配,如malloc函数的使用,以及栈区和堆区的区别。最后,文章强调了防止内存泄漏的重要性。

只读变量

只能读取不能编写,人为编写导致程序报错的变量称为只读变量。

初始化格式:const 变量类型 变量名 = 

 const     int     r=1;
   ↑        ↑      ↑
只读语法    类型  变量名 

这里要注意的是,并非const将内存空间的属性变成只读,数值依然可以修改,但需要指针。

const int i=10;
int *p;
p=&n;
*p=20;
printf("%d",i);    //输出20

 基于指针可以绕过const,需要对指针也作出限制,因而有了只读指针变量和只读变量指针。

只读指针变量 只读变量指针

只读指针变量:意思是只读指针的变量
只读变量指针:只读变量的指针

指针对于变量只读性的赋予取决于*的位置

int*const p2=&a;
*p2=10

在变量和*之间加入了const 构成只读指针变量,此时指针变量被const修饰,此时指针不能指向其他变量,否则会出错,但可以通过指针调整a的值。

int const*p=&a
*p=b;

 在指针左边插入const,此时指针的值被限制不能改变,但可以指向其他向量

int const*const p4=&a;

 const修饰了类型和指针本身,不能指向其他变量,也不能调整指针的值

特殊指针 

硬编码赋值指针

NULL

野指针

void

动态内存分配

之所以存在动态内存分配的概念,是因为对内存的分配路径有认识,定义变量时就已经给变量分配了空间,但大部分时候函数对内存的需求是不确定的,需要手动申请,通过指针的方式使用空间。因此出现管理内存的函数以动态地分配空间。

栈区堆区的区别

栈区由系统自动分配。 例如,声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空间

需要程序员自己申请,并指明大小,例如:

int *ar=NULL;
int *tr=NULL;
ar=malloc(sizeof(int)*20);
tr=malloc(sizeof(int)*40);

 上述给指针ar分配了20个整型存储单元,给指针tr分配了40个整型存储单元

malloc

calloc

内存泄漏

容易混淆的指针

5月14 11 12 13 15 21 23 31 34 35 39 42 48 52 53 56 58 59 62 69 80 5月15 4 5 6 12 18 19 21 30 33 42 44 45 49 52 53 64 71 73 78 80 5月22 11 13 14 22 29 34 37 39 42 43 46 47 50 55 58 61 62 65 66 70 5月23 2 3 7 14 15 16 21 22 23 29 42 46 48 52 55 58 65 68 79 80 6月5 10 12 17 22 28 33 34 41 46 50 52 60 62 63 64 65 71 73 75 79 6月6 6 13 21 27 29 31 32 39 43 47 51 52 53 58 61 67 69 72 79 80 6月17 12 13 14 22 23 28 33 36 42 43 47 51 54 55 62 65 71 72 79 80 6月18 11 15 17 25 27 30 31 32 36 37 41 47 50 55 60 62 65 69 71 80 6月19 1 4 17 19 26 27 31 35 42 45 46 47 52 57 60 61 67 69 72 80 6月27 12 13 14 24 26 27 28 29 31 37 38 46 47 48 60 64 71 74 76 78 6月28 3 6 13 14 17 19 23 28 34 38 41 43 47 55 58 62 70 73 74 80 7月8 11 12 13 14 16 21 22 25 26 40 45 51 55 56 58 65 67 69 72 76 7月9 1 8 10 11 14 20 22 25 29 38 43 47 50 54 59 60 65 66 74 80 7月18 10 22 26 32 34 38 43 44 50 52 55 57 58 66 69 71 72 73 76 79 7月19 1 3 4 6 20 21 34 35 39 41 46 47 50 53 55 56 65 66 70 79 7月27 11 13 16 21 24 28 33 34 37 38 43 44 53 59 61 62 68 71 73 77 7月28 5 7 10 12 13 14 16 21 23 33 43 52 61 65 69 72 73 74 79 80 8月16 13 14 17 26 28 36 37 42 44 48 49 56 57 58 61 62 64 70 71 73 8月17 7 10 15 21 22 24 25 27 35 36 40 43 44 46 50 59 60 61 66 80 9月5 12 14 15 16 17 24 25 28 29 31 38 44 46 47 49 57 59 60 61 76 9月6 7 13 16 19 22 30 34 35 38 39 40 46 47 50 52 56 58 62 67 71 9月19 13 18 19 23 27 30 33 37 41 43 47 49 53 58 61 64 68 71 73 76 9月20 3 10 20 23 27 30 32 35 44 48 50 51 53 56 57 63 65 68 70 72 9月21 16 18 20 29 32 36 37 41 52 53 54 55 56 57 65 69 70 74 75 76 9月22 5 13 15 21 25 26 27 31 37 39 46 50 54 56 57 59 65 70 78 79 10月25 10 11 14 19 20 26 29 30 35 37 40 41 45 46 59 68 70 77 78 80 10月26 分析前后期数字规律,并分析10月2699%的杀掉的号码70个
10-27
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值