C++ primer笔记

1 初始化 vs 赋值

C++语言中,初始化和赋值是两个完全不同的操作。这是一个至关重要的概念。
初始化不是赋值,初始化的含义是创建一个变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个新值来替代。

2 声明 vs 定义

为了允许把程序拆分成多个逻辑部分来编写,C++语言支持分离式编译(separate compilation)机制,该机制允许将程序分割为若干个文件,每个文件可被独立编译。
为了支持分离式编译,C++语言将声明和定义区分开来。

extern int i;  //声明
int j;  //声明并定义
extern int i=0;  //声明并定义

变量能且只能被定义一次,但是可以被多次声明。

3 复合类型

复合类型(compound type)是指基于其他类型定义的类型。C++语言有几种复合类型,比如:引用,指针。

3.1 引用

引用(reference)为对象起了另外一个名字,引用类型引用另外一种类型。通过将声明符写成 &d的形式来定义引用类型,其中d是生命的变量名。

int &refVal = ival;  //refVal指向ival(refVal是ival的另一个名字)

一般在初始化变量时,初始值会被拷贝到新建的对象中。然而定义引用时,程序把引用和它的初始值绑定在一起,而不是拷贝。一旦初始化完成,引用将和它的初始值对象一直绑定在一起。
引用类型的初始值必须是一个对象,除特殊情况外必须类型匹配。

3.2 指针

指针本身是一个对象,允许对指针赋值和拷贝,指针无须在定义时赋初值。
定义方法:*d,d是变量名。

int *p=&ival;  //p存放变量ival的地址,p是指向变量ival的指针

取地址符:&
解引用符:*

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值