您的位置:首页 > 编程语言 > C语言/C++

【C++基础05】引用的基础

2016-01-13 10:27 330 查看
变量名实质上是一段连续存储空间的别名,是一个标号(门牌号)

程序中通过变量来申请并命名内存空间

通过变量的名字可以使用存储空间

属于c++编译器对c的扩展 不能用c编译器的角度思考引用

void main()
{

int a = 10;
//引用的语法:Type&name=var;

//b就是a  写b就相当于写a
int&b = a; //int* const b=&a;   指针变量为常量值  意思就是不能再改变指针的指向  但是可以改变指针所指向地址的值

//相当于把a 改成了100  b就是a a就是b
b = 100;//*b=100;

cout << "hello!" << endl;
system("pause");
return;
}


普通引用必须初始化

void swap(int a,int b)
{
int tmp;
tmp = a;
a = b;
b = tmp;
}

//改变指针所指地址上的值
void swap02(int *a, int *b)
{
int tmp;
tmp = *a;
*a =*b;
*b = tmp;
}

//引用左函数参数的时候 声明不需要初始化  没法初始化
void swap(int &a, int &b)
{
int tmp;
tmp = a;
a = b;
b = tmp;
}

void main93()
{
int a = 10;
int &b = a;
//int &c; //普通引用必须初始化
int x = 10, y = 30;

cout << x<<" "<<y<<endl;

cout << "hello!" << endl;
system("pause");
return;
}


复杂数据类型引用做函数参数:

struct Teacher
{
char name[64];
int age;
};

void printfT01(Teacher pT)
{
cout << pT.name<< endl;
cout << pT.age << endl;
}

void printfT02(Teacher*pT)
{
cout << pT->name<<endl;
cout << pT->age << endl;
}

void printfT03(Teacher&pT)
{
cout << pT.name << endl;
cout << pT.age << endl;
}

void main()
{
Teacher t1;
t1.age = 35;
t1.name[64] = {'a'};

printfT01(t1);
printfT02(&t1); //pT是t1的别名
printfT03(t1); //pT=t1;
cout << "hello!" << endl;
system("pause");
return;
}


普通引用在声明时必须用其它的变量进行初始化,
引用作为函数参数声明时不进行初始化

引用的意义:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: