C++ Primer (第二十九回---第三十二回)

第二十九回

数组的名称就是指向数组的第一个元素的指针

指针相减的结果是:这2个指针所指向的数组元素之间的距离(如下图,n输出的结果为4)

注意数组和指针之间的关系(如下图)

超出末端的指针经常被用来当作循环使用(如下图)

第三十回

第一个方框中的 p 是一个普通指针,但是该指针 指向一个常对象,且该常对象必须是double类型的数据

第二个方框中的p是一个常指针,该指针指向一个double类型的对象,但是这个对象是可以改变的

第三个方框中的p是一个常指针,该指针指向一个常对象,且该常对象必须是double类型的数据

一个指针如果要指向 const 对象,那这个指针必须是指向const对象的指针,下图1的写法是不正确的,因为图1中的 p 只是一个普通指针,下图2是正确的(换句话说,常对象的指针必须是指向常对象的指针

指向常对象的指针是可以指向普通对象(非const对象)的,下图1是正确的,但是不能通过这个指向常对象的指针来修改对应的普通对象(下图2中红色框部分是错误的)

 

所谓的常指针,就是说,一旦这个指针指向一个对象了,那么它就永远指向这个对象,不能再改变了,所以 常指针在声明的时候就必须进行初始化(下图所示)

 

指向常对象的常指针,下图中,两句注释掉的语句,第一句不可以是因为常指针,第二句不可以是因为 指向常对象的指针

const 写前面也行,写后面也行,如图1所示,两句是一样的;如图2所示,画框的两条语句是一样的,但是,cstr 和 cstr2 不同,和 cstr3 相同,也就是说,cstr是一个常指针,而不是指向常对象的指针。习惯上,一般把const写在最前面,虽然容易造成误解。 

第三十一回

第三十二回

静态数组可以用初始化列表进行初始化(下图),但动态数组不能用初始化列表进行初始化

静态数组不需要delete释放,因为它是创建在堆栈上的局部变量,函数结束后就自动释放,而动态数组就需要delete

C语言中,操作字符串更多的是应用字符数组

静态数组的长度是固定不变的,而动态,而动态数组的长度可以根据需要来定义 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值