基本语法
#include <iostream>
using namespace std;
//引用就是给内存空间 取别名
//语法:Type &别名=原名
void test01()
{
int a = 10;
int& b = a;
b = 20;
cout << "a=" << a << endl;
}
//引用必须要初始化!!!!!!!!!!!
void test02()
{
int a = 10;
//int& b;//语法不通过
int& b = a;
//一旦初始化之后 就不可以修改指向了
int c = 20;
b = c;//仅仅只是赋值
cout << "a=" << a << endl;
cout << "b=" << b << endl;
cout << "c=" << c << endl;
}
//建立对数组的引用
void test03()
{
int arr[10];
int(&Arr)[10] = arr;
for (int i = 0; i < 10; i++)
{
arr[i] = i;
}
for (int i = 0; i < 10; i++)
{
cout << Arr[i] << endl;
}
//先定义数组的类型,再定义引用
typedef int(ARRAY_TYPR)[10];
//语法:Type &别名=原名
ARRAY_TYPR& Arr2 = arr;
for (int i = 0; i < 10; i++)
{
cout << Arr2[i] << endl;
}
}
int main()
{
test03();
return 0;
}
指针的引用
#include<iostream>
using namespace std;
struct Person
{
int age;
};
void allocateSpace(Person **p)
{
*p = (Person*)malloc(sizeof(Person));
(*p)->age = 100;
}
void test01()
{
Person* p = NULL;
allocateSpace(&p);
cout << "年龄:" << p->age << endl;
}
//2、指针的引用
void allocateSpace2(Person*& p)//Person * &p=p
{
p = (Person*)malloc(sizeof(Person));
p->age = 200;
}
void test02()
{
Person* p = NULL;
allocateSpace2(p);
cout << "年龄:" << p->age << endl;
}
int main()
{
test02();
return 0;
}