C/C++ 禁止在函数调用时直接传递数组的内容,而是强制传递数组指针
引用(Reference)是 C++ 相对于C语言的又一个扩充。引用可以看做是数据的一个别名,通过这个别名和原来的名字都能够找到这份数据。
type &name = data;
type 是被引用的数据的类型,name 是引用的名称,data 是被引用的数据。 引用必须在定义的同时初始化,并且以后也要从一而终,不能再引用其它数据,这有点类似于常量(const 变量)。注意,引用在定义时需要添加&
,在使用时不能添加&
,使用时添加&
表示取地址。
- #include <iostream>
- using namespace std;
- int main(){
- int a = 99;
- int &b = a;
- cout<<a<<", "<<b<<endl;
- cout<<&a<<", "<<&b<<endl;
- return 0;
- }
所以 如果 b = 10 . 再打印的话 a 也为10.
如果不希望通过引用来修改原始的数据,那么可以在定义时添加 const 限制,形式为:
const type &name = value;
也可以是:type const &name = value;
- //按引用传参
- void swap3(int &a, int &b){
- int temp = a;
- a = b;
- b = temp;
- }
注意:使用指针必须先检查它的合法性。void print_i (int * p ){if(p){printf("%d",*p)}} 即检查指针p是不是NULL。
引用和指针的区别。1.指针可以指向NULL。引用必须指向具体对象。2.指针声明时可以不初始化,引用必须初始化。3.指针可以改变指向的内容,引用不能改变指向的对象。
引用还不是很明白。。。。。