C++ Primer笔记(第26回---28回)

二十六回

二十七回

数组维数必须是大于等于1的常量表达数,下图2中的三个箭头所指的地方都是不行的,因为数组维数必须是常量,注意:第三个 SZ  这个量,虽然前面声明了是 const常量,但它的值是函数get_size()的返回值,而函数的返回值在编译时是没有值的,只有在运行时才有值,而数组的维数必须在编译时就能确定的常量表达式!

 使用局部数组之前必须对其进行初始化(因为局部变量,系统不会默认给初值)

seze_t 专门用来做数组的下标的类型(如下图)

第二十八回

注意,指针的定义有2种写法(图1),但是要注意第二种写法不推荐,因为在图二中,ps1是一个指针,而ps2不是一个指针,而这种写法很容易产生歧义。

定义2个指针的正确写法如下图所示

如果一个指针保存的是0,那么表示这个指针不指向任何对象(下图)

对指针的常规操作如下图所示,注意,里面有一条没有对指针进行初始化的语句,没有初始化的指针是非常危险的,要尽量避免出现没有初始化的指针

把变量赋值给指针变量是错误的,如下图所示就是错误的

将一个在编译时就能确定的常量  赋值给  指针变量  是可以的(如下图)

自己写的常量(0除外)不能赋值给指针变量,如下图是不可以的

注意:NULL是一个宏定义,就是0

注意:一个指针只能指向同类型的对象,所以下面图中的红色框部分是不可以的,因为 pd 这个指针指向double型变量,pi7 这个指针指向的是 int 型变量

下图也是不行的,犯了和上图同样的错误

注意万能指针(下图是正确的)

注意指针和引用的区别

指针,可以先声明,声明时可以不进行初始化,然后接下来通过赋值对指针进行初始化。而引用,必须在声明时就进行初始化,下图中,红框1的部分是可以的,红框2的部分是不对的

注意,指针和引用的第二个区别在于:指针所指向的对象是可以改变的,而引用一旦引用了一个对象后就不可以再改变引用其他对象(下图中,第一个红框是正确的,第二个红框是错误的,或者说,第二个框 ri = ri2 所表达的意思其实是:将ival2的值赋值给了ival)

 指针的指针

下图中,第一个红框部分中的 ppi  是指针的指针,而第二个红框部分,这个 **ppi 表示对 ppi 进行双重解引用,所以这个 **ppi 表示的是 pi 所指向的值  ival,即1024

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值