引用 笔记1

 一、特殊的 “ 别名 ”:引用

1 .引用概念 引用概念
a) 在C++中新增加了引用的概念
b) 引用可以看作一个已定义变量的别名
c) 引用的语法:Type& name = var;
d) 引用做函数参数那?(引用作为函数参数声明时不进行初始化)

共用一个内存空间

#include <stdio.h>
#include <stdlib.h>
int main(void){
int a = 666;
float c = 10.0;
int &b = a;
float &d = c;
//不能直接定义没有指向的别名
int &e ;报错!
printf("a: %d, b: %d\n", a, b);
b = 888;
printf("a: %d, b: %d\n", a, b);
printf("a 的地址:%p, b 的地址:%p\n", &a, &b);
system("pause");
return 0;
}

2.引用是 C++的概念

属于C++编译器对C的扩展

3.引用做函数参数

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

#include <stdio.h>
#include <stdlib.h>
void swap(int a, int b)
{
int tmp = a;
a = b;
b = tmp;
}
//方式一, 使用指针
void swap1(int *a, int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
//方式二, 使用引用
void swap2(int &a, int &b)
{
//int &c; //不可以
int tmp = a;

a = b;
b = tmp;
}
int main(void){
int x = 10, y = 100;
//swap1(&x, &y);
swap2(x, y);
printf("x: %d, y: %d\n", x, y);
system("pause");
return 0;
}

4.引用的意义

1)引用作为其它变量的别名而存在,因此在一些场合可以代替指针
2)引用相对于指针来说具有更好的可读性和实用性
int swap(int &a, int &b){
int t = a;
a = b;
b = t;
return 0;
}
int swap(int *a, int *b)
{
int t = *a;
*a = *b;
*b = t;
return 0;
}

posted @ 2020-05-17 12:54  CollisionDimension  阅读(73)  评论(0)    收藏  举报