C++学习笔记(一)

引用

  • 引用相当于为对象起了另一个名字。
  • 引用本身不是对象,不能定义引用的引用。
  • 引用只能绑定到对象上。
  • 引用必须被初始化,初始化之后引用即被绑定到该对象上,不可更改。

指针

  • 本身就是一个对象。
  • 无需赋初值,但未初始化的指针会导致很多问题,建议定义时初始化。
  • 指针存放地址。
    如果指针指向了一个对象,则允许使用解引用符*)来访问该对象。
#include<iostream>
using namespace std;
int main()
{
	int q = 10;
	int*p = &q;
	cout << *p << endl;
	int j = *p;
	cout << j << endl;
	return 0;
}

输出

10
10

const关键符

  • const对象必须初始化,且初始化后其值不可改变。
  • const定义的对象作用域仅在文件内。
  • 必要时,使用extern定义,可被其他文件使用。
//file_1.cpp定义并初始化了一个常量,该常量可以被其他文件访问
extern const int bufSize = fcn();
//file_1.h头文件
extern const int bufSize;	//与file_1.cpp中定义的bufSize是同一个

const的引用

const int ci = 1024;
const int &r1 = ci;		//正确:r1和ci对应的对象都是常量
int r1 = 42;			//错误:r1是对常量的引用
int &r2 = ci;			//错误:r2是非常量引用,不可指向常量对象

不允许通过const引用改变对象的值,但可以通过对象或引用改变值。

//const引用的值可以通过引用的对象或该对象的非常量引用改变
	int i =  42;
	int &r1 = i;
	const int &r2 = i;
	i = 0;
	r1 = 0

指针和const

指向常量的指针,想要存放常量对象的地址只能使用指向常量的指针。

const double p =  4.2;
const dobule *r1 =&p;

const指针,必须初始化,且初始化之后值不再改变。

int errNumb = 0;
int *const curErr = &errNumb;//指向errNumb的常量指针

注:指针的值是地址,常量指针的值不变,但该地址内的内容可变。
顶层const,指针本身是一个常量;底层const,指针所指的对象是一个常量。拷贝时有区别:顶层const拷贝无影响,底层const拷贝是必须同时具有底层const的资格。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值