C++ 引用与指针
来源:互联网 发布:股票龙虎榜软件 编辑:程序博客网 时间:2024/06/14 17:36
C++学习笔记引用与指针
引用可以作为函数中其他变量的别名,
int count = 1;
int &cRef = count;
此时Ref 就是count的别名,对Ref的操作同样会改变count;引用参数应该是左值,而不能是常量或返回左值的表达式,并且引用生命是必须初始化,且一旦初始化就不能再次赋值
下面是在函数调用时引用的应用
void squareByReference(int & cRef)
{
cRef *=cRef;
}
这样调用
int x =2;
squareByReference(x);
比较一下:函数参数定义时int &cRef 相当于引用定义时的左值,函数调用时传递的参数相当于引用定义的时的右值.
下面来说说指针和指针变量
int *countPtr,count;
这里我们可以说 我们声明了一个变量countPtr 其类型为int* 而countPtr int的指针.
这里可以看出指针变量与指针的区别: 指针变量直接包含特定值,而指针包含特定值变量的地址
&为去地址运算
int y = 5;
int *yPtr;
yPtr = &y;
这里*yPtr 指针变量的值为5,但指针yptr的值是特定值5所在的内存地址值
最好说说指针与引用的联系
int a = 1;
int &aRef = a;
int *pa = &a;
这是 aRef 和*pa的值都是1, pa的值是1的内存地址 *pa成为指针的复引用
如果是函数调用
void bre(int &aRef)
{
aRef = 10;
}
void bp(int *pa)
{
*pa = 10;
}
调用时也是一样的
第一个
bre(a)
第二个
bp(&a);
两个结果调用再输出a 其值都是10;
将指针传递给函数有四种方法:
非常量数据的非常量指针,常量数据的非常量指针,非常量数据的常量指针,常量数据的常量指针
非常量数据的非常量指针 指针和值都可以修改 这中指针可以用来接收函数的数组参数
常量数据的非常量指针 如const char * sptr 表示sptr是个字符常量的指针
非常量数据的常量指针 (例如:int *const ptr 表示指针地址不能改,但地址上的值可以改)总是指向相同的内存地址,该地址的数据可以用过指针修改,数组名是默认的,数组名是数组开头的常量指针,可以接收数组(名)为函数参数 常量数据的常量指针,顾名思义了.
- 【c++】指针与引用
- 【C++】指针与引用
- C++【引用与指针】
- 指针与引用c
- 【C++】指针与引用
- c中指针与引用
- 指针与引用(C++)
- C/C++引用与指针
- 【C/C++】指针与引用的区别
- C与C++之引用与指针
- 【C++与C差异】引用与指针
- 指针与引用的区别 (MoreEffictive C++)
- java引用与C指针的异同
- C/C++ 指针与引用的区别
- 【C++】指针与引用的区别
- c,c++易错点之指针与引用
- C引用与指针的比较
- 引用 与 指针的区别 -- C
- struts2学习笔记(六)文件上传与下载(下)基于Struts2的文件上传与下载
- HTML5开发WebAPP--基础
- 如何设置backBarButtonItem的title和action
- nyoj—1的个数
- 对.Net 垃圾回收Finalize 和Dispose的理解
- C++ 引用与指针
- hdu1879 继续畅通工程
- Struts2的拦截器机制
- 黑马程序员 Java基础之10进制转换
- hdu 1233 畅通工程 三
- android权限大全
- 深入解析环境变量
- 前置声明的使用
- spring启动component-scan类扫描加载过程---源码分析