引用和指针
// chapter09a03引用.cpp :
//引用:为对象起了另外一个名字(引用即别名)
//1.引用并非对象,只是为一个已经存在的对象起的别名
//2.引用只能绑定在对象上,不能与字面值或某个表达式的计算结果绑在一起
//(int &ref_value = 10; 错误表达)
//指向常量的引用 (const int &ref_value = 10; 正确表达)
//3.引用必须初始化,所以使用引用之前不需要测试其有效性,因此引用可能会比指针效率高,不可以直接引用常量(字面量)
//4.将引用变量用作参数时,函数将使用原始数据,而非副本
//5.引用和指针之间的关系
//引用对指针进行了简单封装,底层仍然是指针
//获取引用地址时,编译器会进行内部转换
//6.当数据所占内存较大时,建议使用引用参数
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
int num = 100;
int& rel_num = num;
rel_num = 110;
cout << &num << '\t' << &rel_num << endl;
cout << num << '\t' << rel_num << endl;
}
数组与指针
// chapter09a04指针与数组.cpp :
// 数组:
// 存储在一块连续的内存空间中
// 数组的数组名就是数组的首地址
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
double score[] = { 78,85,86,90,100 };
double* ptr_score = score;
cout << sizeof(score) << '\t' << sizeof(ptr_score) << endl; // double[5] 5*8 =40 4
cout << ptr_score[2] << endl; // 86
}