读陈黎娟的《C、C++实践进阶之道,写给程序员的编程书》--关于指针

it2022-05-05  127

指针学习记录:

指针有两个属性:值和类型。值是存储的地址,类型表示所指向的变量的数据类型。指针的类型有两个作用:1、指示编译在解引用时从内存读取几个字节;2、指示编译在进行指针类型转换时如何进行类型检查和匹配指针有两类:空指针和void指针。空指针为NULL,void指针可指向任何变量指针初始化四种方式:1、使用NULL指针进行初始化;2、使用类型匹配的对象的地址;3、另一个对象之后的下一个地址;4、同一类型的另一个有效指针const 修改指针:1、指针指向const修饰对象,不允许指针修改指针所指向的对象;2、const修饰指针,允许通过指针修改所指向的对象,但是不允许修改指针的值改变不允许把指向const对象的指针赋给非const指针类型定义分:const 类型 * 指针 表示指向const类型的指针;类型 * const 指针 表示指向变量的const指针c++中函数参数传值时把形参当做指针原因:1、所有非数组形式的数据实参均以传值的形式调用(对实参作一份复制并传递给调用的函数,函数不能改变实参的实际变量的值,只能修改传递给它的那份复制);如果复制整个数组的话,时间和空间上的花销都是很大的,如果是类对象,还存在类的复制构造函数的调用。2、可以简化编译的实现。作为函数形参时,数组和指针是等价的,数组表示一个指向数组首元素的指针。数组名被编译器当做是一个指向数组首元素的const指针。无论采用a[i]或者*(a+i)形式访问,编译器在编译时均会改写成*(a+i)指针形式访问。数组指针:指向数组的指针,类型 (* 数组标识符)[长度] 如 int (*p)[10];                                                                                指针数组:存放指针的数组,类型 *  数组标识符 [长度]  如 int * p[10];

最新回复(0)