#include <iostream>
int main(){
/*
1.引用:
(1)格式: 数据类型& 引用变量名 = 被引用变量名.
eg: int a = 1;
int& ref = a;
(2)引用并非对象,且只能绑定在对象上,不能与字面值或某个表达式的计算结果绑定一起.
即不能给引用变量直接负数值,只能给它赋变量名.如上例赋给ref的是变量名a.
(3)引用必须初始化,也即必须被赋值.它相当于是在给被引用的对象起了个别名.
eg: int& ref;
这种不给引用初始化的操作是错误的!!!
(4)当想要给常量加一个引用时,需要在前面加上个const.因为引用不能直接赋值字面值.
eg: const int& ref = 100;
这个时候ref的值就为100了,个人觉得这种操作比较傻叉.
直接ref = 100 不就好了,干嘛要这么麻烦....
(5)引用的使用:
int a = 1;
//给a起别名r.
int& r = a;
//此句就相当于a = 2.
r = 2;
cout << &a << "\t" << &r << endl;
cout << a << "\t" << r << endl;
我们发现输出的第一句,地址是一样的.
第二句值也都为2,说明a的值被r给修改了.
2.指针与数组使用:
(1)首先要声明的是,数组名就代表该数组的首地址.
eg: int a[] = {1,2,3};
int* p = a;
此句的意思是,让指针p指向数组a的首地址.
(2)通过指向数组的首地址,则可直接通过指针来对数组中的数据进行访问了.
eg: int a[] = {1,2,3};
int* p = a;
cout << p[2] << endl;
结果为2.
不知道你有没有发现,这里好像是在给数组a起了个别名啊,
因为这里访问数组中的元素没有带*号,也即不是*p[2].
原因:
其实上面已经说到过了,数组名就代表数组的首地址,
所以我们平时见到的 a[1],不也就相当于通过数组首地址访问数组中下标为1的元素吗.
因为指针变量p的值在不带*号时,表示的就是一个地址.
符合通过地址对数组进行访问的逻辑,所以这里肯定不是用*p[2]了.
*/
}
C++学习--“ 指针 引用 数组 “三者使用总结
最新推荐文章于 2024-01-17 11:09:23 发布