C++关于指针、const、引用三者的体会
来源:互联网 发布:淘宝下拉菜单小图标 编辑:程序博客网 时间:2024/05/20 09:05
关于三者的应用可以用一下几句话来总结:
一、对变量的更改权限只会变低
二、符号离谁近就修饰谁
三、const不是对象
首先看第一句,对变量的更改权限只会更低;
举例说明:
int x = 0;//对该变量可读可写;正确
const int &y=x;对该变量可读不可写;正确
int const a = 0;//对该变量可读不可写;正确
const int &b=a;//对该变量可读不可写;正确
int &c=a;//对该变量可读可写;错误;原因是 定义的c引用表示可以更改他所‘指’的变量的值,这意味他有可读可写的权限,但是a是常量,可读不可写。然而这句代码提高了a的权限为可读可写。
同样指针也是一样。
第二句,符号离谁近就修饰谁:
仍然举例:
const int x=0;此处可写成 int const x=0; 忽略int ,const 修饰 x,也就是说x为常量,里面放int类型
const int &y=x;此处可写 int const &y=x;忽略int ,const 修饰&y,也就是说引用y‘指’向的‘对象’为常量
int &const f=x;错误,引用不是对象不能把引用本身用const修饰,但是,引用本身定义之后就不能修改;
int const *p=&x;或者const int *p=&x;const 修饰*p,*修饰p,也就是说p是指针。const修饰*p,就是p指向的‘对象’为常量
int *const g=&x;*修饰const g,cosnt修饰g,也就是说g为常量,*修饰const g,就是说该常量为指针,他会一直指向一个对象,不能指向别的对象
const int *const gg=&x;表示他会一直指向常量x,不能指向其他对象,同时不能通过gg修改x;
关于引用和指针:
引用时别名,而指针放的是地址。关于引用、指针用作形参,则不在这里说了。
第三句,const不是对象
- C++关于指针、const、引用三者的体会
- 指针、引用、const常量三者之间的关系
- 关于二叉树指针和引用的体会
- 关于const的三类指针
- 关于const引用、常量指针、指针常量的一些知识
- const指针的引用
- const指针的引用
- C/C++中关于地址、指针和引用变量的学习笔记(六) : const和void
- 11、C++const指针 引用
- C++:指针、引用和CONST
- C++(常)引用,const,指针引用
- 关于指针、const、typedef、作用域::、引用&的一些理解
- 关于const 修饰变量、引用、指针的说明
- C--我对指针和引用const之后的理解
- 关于const常量、const指针以及const引用
- 关于C指针用法的体会和感受
- C语言基础指针之const char *p,char const *p,,cahr * const p 三者之间的区别
- const的指针和引用
- js中DOM, DOCUMENT, BOM, WINDOW 区别
- luoguP2066 机器分配 题解
- 常用linux命令实战
- C#实现本地文本日志
- dlib 18 android编译dlib库,运行matrix_ex demo
- C++关于指针、const、引用三者的体会
- php运行原理
- vue.js阻止事件冒泡和默认事件
- Selenium WebDriver API常用方法解释
- log4j的使用
- ES6学习笔记:字符串、正则、数值、函数和数组的扩展
- 32位程序如何使用ADO访问64位Oracle数据库[转]
- Activity的启动流程源码分析
- 有符号整型加法与乘法