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

本文详细介绍了C++中指针的基本概念,包括指针的属性、类型、初始化方式及const修饰符的使用,并探讨了指针与数组的关系,以及在函数参数中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

指针学习记录:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值