#include <iostream>
using namespace std;
int x = 12;
int y = 80;
int *p = &y; // & 就是引用,
int &r = y; // 引用就是别名相当于y 又有了一个别名r,r 和 y 是同一个变量,对r 进行操作就是对y 进行操作,
// 创建引用的时候必须初始化,引用不能改变、也没有NULL引用,
// 指针可以在任何时候初始化,指针可以改变,有NULL指针,
int *q; // 指针可以在任何时候初始化,
void f(int a)
{
a++;
}
int* g(int* a)
{
(*a)++;
return a;
}
int& k(int& a)
{
a++;
return a;
}
void increament(int*& r)
{
r++; // 这个是将地址++
}
// 参数传递:使用传值方式传递非常小的对象,使用传常量引用方式传递不需要修改的大对象,函数要修改参数原始对象才使用传引用方式,
int main()
{
int *tt = 0;
cout << tt << endl; //输出的是指针的地址
increament(tt);
cout << tt << endl; //输出的是指针的地址
f(x); // 在这里只是将x 复制到函数void f(int a) 将x变成a ,执行++, 而原来的x 还是不变的,
cout << x << endl; // 输出的还是12
g(&x);
cout << x << endl; // 输出的是13
k(x);
cout << x << endl; // 这个是输出为14.在13的基础之上又加一,
(*p)++;
cout << y << endl; // 输出的是81,
r = x; // r 是 y 的引用(别名),这一行相当于 y = x
r++; // 引用不能改变 . 在这里相当于y++
cout << x << ", " << y << endl; // 输出的是x还是12,y 是13
return 0;
}
引用
最新推荐文章于 2016-05-23 18:36:18 发布