c++入门学习笔记指针篇

c++入门学习笔记指针篇,第1张

c++入门学习笔记指针篇,第2张

指针的优点:
1。为函数提供修改调用参数的方法;
2 .支持C++动态分配子程序
3。有些子程序的效率可以提高
4。提供对动态数据结构(如二叉树和链表)的支持

注意:指针为程序引入了一个间接层,你可以操纵指针而不是直接操纵对象。
1 .您可以操作指针中包含的地址或指针所指向的对象
2。指针不能指向任何对象。写*pi时,程序可能在执行时出错。例如,如果您对一对
图像进行寻址,提取操作将不会指向任何对象,并且会发生错误。因此,在获取之前,确保它确实指向某个对象。
不指向任何对象的指针,地址为0,有时称为空指针,assert (p = 0) Yes可以检测到
没有分配成功。也可以使用if (pi),只有当pi包含非零值时才成立。

1.定义:
是存储内存地址的变量。
解释:
指针是一种数据类型,有自己的地址。memory空room
int * p:& p,占用四个字节,返回的是指针p的地址,而不是所指向变量的地址
。地址通常是指内存中另一个变量的位置。

二。指针变量:
type * name必须声明,以确保其类型与要指向的对象类型兼容
const是“最接近”的原则
指向整型常量的指针:const int * p;它指向的值是只读的,不能修改*p = 4(错误),p =
5(正确)
指向一个整数的const指针:int * const p;不允许修改指针变量的值,*p = 5(正确),p
= 5(不正确)

三。指针运算符:
&(地址运算符):一元运算符,只作用于一个操作数,返回操作数的地址
*(取操作):一元运算符,是&的补码,返回其操作数所指向的变量的值。

四。指针赋值和转换:
同一类型直接赋值,不同类型转换。
强制转换:可以将表达式结果硬转换为指定的类型
char * p;(int *)p强制将p转换为int类型,在转换过程中记得注意两种类型的大小。涉及void *的大转换
小时后可能会发生数据丢失(比如int到double):c中的void *类型可以赋给任何类型的指针,反之亦然
c++。Void * t= p(正确)
;P=t(误差)

凡是不涉及void *的都要强制转换。

5.指针的算术运算
和指针递增后整数的加减递增
指向下一个与指针基类同类型的元素。增量或减量单位是指定类型的长度。

不及物动词其他解释:
1。而指针数组:
不带下标的数组名返回数组的起始地址,也就是数组第一个元素的地址,所以访问数组有两种方式:数组下标和指针算术
2。函数指针:
函数有一个物理内存地址可以赋给指针,一个函数地址也是函数的入口点和调用函数的地址
3。多级指针地址**p

七。动态内存分配
定义:是程序在运行过程中获取内存的方法。从堆中获取内存)-系统的空闲内存区域。

运算符:
new(C中的malloc):自动构建一个大小合适的对象,并返回一个类型正确的指针。如果分配
不成功,将返回空指针0,可以自动调用构造函数。
char * p = new char(' t ');
delete(c中为free):删除p;
释放数组对象时使用方括号delete[]p;

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » c++入门学习笔记指针篇

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情