C++学习之引用特性

来源:互联网 发布:淘宝刷单兼职91lingla 编辑:程序博客网 时间:2024/05/22 14:54

引用即给变量赋予一个别名,就像外号一样,我叫李晓明,外号小明,实际都是指李晓明这个人。

#include<iostream>using namespace std;int main(){//C++中的引用int a = 3;int &b = a;//引用要初始化b = 10;cout << a << endl;system("pause");//暂停程序return 0;}

程序的输出记过就是10,通过b的引用,将a的值改掉了。

结构体中的引用,

#include<iostream>using namespace std;typedef struct{int x;int y;}Coor; //坐标结构体int main(){//C++中的引用Coor c1;Coor &c = c1;c.x = 10;c.y = 20;cout << c1.x << "" << c1.y << endl;system("pause");//暂停程序return 0;}

指针类型的引用是最为复杂的。

格式为:

类型  *&指针引用名=指针;

#include<iostream>using namespace std;int main(){int a = 10;int *p = &a;int *&q = p;//引用指针*q = 20;cout << a << endl;system("pause");//暂停程序return 0;}

引用作函数参数,在C语言中有一个例子。

void fun(int*a, int*b)//完成交换功能{int c = 0;c = *a;*a = *b;*b = c;}//调用时int x = 10, y = 20;fun(&x, &y);

可以看出,在函数调用时,要写成取地址(&)x和取地址y。如果用引用的形式的话。

void fun(int &a; int &b){int c = 0;c = a;a = b;b = a;}int x = 10, y = 20;fun(x, y);


那么,引用和指针实际上都是对内存直接进行操作,他们有什么去区别和练习呢。


指针是某块内存的地址,而引用是某块内存的别名。


区别:

1. 指针是一个实体,而引用只是个别名;

2. 指针需要用*才能操作,引用不需要;

3. 引用需要初始化,在初始化后不能改变,而指针的初始化不是必须的,且可以改变;

4. 引用没有const,指针可以有const;

5. 引用不能为空,指针可以为空;

6. sizeof()操作,对指针来说是定长,而对引用来说是其数据类型的size;

7. 指针的++和引用的++操作也是不一样;

8. 指针需要为其分配内存,而引用不需要,因为是对已有的内存的引用。


0 0
原创粉丝点击