指针
- 指针类型 必须 与指向的对象类型一致
- 根据类型声明分配内存大小
- * 左边为指向的类型
- void* (无类型指针) —— 能保存一个内存地址,与数据类型无关。要先转换类型,才能访问其所指内存区域的数据
int i = 4, *pi = &i;
double d = 9.4, *pd = &d;
void* pv;
pv = &i;
pv = pi;
pv = pd;
cout << *(double*)pv << endl;
引用
C++之引用的详解
- 引用不分配存储空间,必须初始化,类型要与变量一致
- 引用一次只能定义一个变量
#include <iostream>
using namespace std;
int main()
{
int i = 9;
int& ir = i;
cout << "i addr :" << &i << " i value :" << i << endl;
cout << "ir addr :" << &ir << " ir value :" << ir << endl;
int a[5] = {1, 2, 3, 4, 5};
int* b[5];
int(&ra)[5] = a;
int& aa = a[0];
int* (&rpa)[5] = b;
int i=0;
int* pi=&i;
int* &pr = pi;
}
左值引用与右值引用(C++11)
C++11右值引用(一看即懂)
double r=10;
double& r1=r;
double&& r3=r+10;