const学习总结
来源:互联网 发布:2018年复杂网络大会 编辑:程序博客网 时间:2024/06/13 17:21
const这个东东学习了很多次,每次学完过了一段时间就忘了,下次还是搞错。这次自己总结下,顺便印证下那句只有把自己学到的东西写成教程才是真正学习到的名言
先看只有一个变量的场景
原则:
1. const永远只修饰它右边的那个变量,基础类型的位置与const的位置可以互换,更精简的一句话:const与基础类型之间没有*号时,const与基础类型之间的位置可以互换。
例:
int const i; //i不能变
const int i; //i不能变
这两条语句是等价的。
int const *p1;
const int *p1;
这两条语句也是等价的。
2. 如果语句中有表示指针的*号,那么请记住所有的指针*号都是从右向左结合的
例:
int const *p1; //*p1不能变,即p1所指向的值不能变,因为*号修饰的只有p1
int* const p1; //p1不能变,即p1不能指向其它地方了,因为*号修饰的是const p1
一句话来总结就是如果const在*号的左边,指针指向的值不能变,如果const在*号的右边,则是指针不能执行其它地方了。一句话:左定值,右定向
再来看有多个变量的场景
原则:
1. const的作用范围与类型的作用范围是相同的
例1:
int const a = 0, b = 0;
const int a = 0, b = 0;
这两条语句是等价的,都是表示a、b的值均不能修改
int a = 0;
const int *p1 = &a, *p2 = &a;
int const *p1 = &a, *p2 = &a;
上面两条语句也是等价的,都是*p1、*p2不能改变
例2:
int * const p1 = &a, *p2 = &a;
这条语句中,p1是不能改变指向的,但是p2可以。因为这个const与int之间有*号,所以他们的位置不能互换,*号是从右向左结合的,所以 (*const p1)是一个整体,这就把上面这条语句的const作用范围限定在p1这一个变量中了。
先看只有一个变量的场景
原则:
1. const永远只修饰它右边的那个变量,基础类型的位置与const的位置可以互换,更精简的一句话:const与基础类型之间没有*号时,const与基础类型之间的位置可以互换。
例:
int const i; //i不能变
const int i; //i不能变
这两条语句是等价的。
int const *p1;
const int *p1;
这两条语句也是等价的。
2. 如果语句中有表示指针的*号,那么请记住所有的指针*号都是从右向左结合的
例:
int const *p1; //*p1不能变,即p1所指向的值不能变,因为*号修饰的只有p1
int* const p1; //p1不能变,即p1不能指向其它地方了,因为*号修饰的是const p1
一句话来总结就是如果const在*号的左边,指针指向的值不能变,如果const在*号的右边,则是指针不能执行其它地方了。一句话:左定值,右定向
再来看有多个变量的场景
原则:
1. const的作用范围与类型的作用范围是相同的
例1:
int const a = 0, b = 0;
const int a = 0, b = 0;
这两条语句是等价的,都是表示a、b的值均不能修改
int a = 0;
const int *p1 = &a, *p2 = &a;
int const *p1 = &a, *p2 = &a;
上面两条语句也是等价的,都是*p1、*p2不能改变
例2:
int * const p1 = &a, *p2 = &a;
这条语句中,p1是不能改变指向的,但是p2可以。因为这个const与int之间有*号,所以他们的位置不能互换,*号是从右向左结合的,所以 (*const p1)是一个整体,这就把上面这条语句的const作用范围限定在p1这一个变量中了。
0 0
- const 学习总结:
- const学习大总结
- const学习总结
- C++ 中 Const 学习总结
- C++ primer学习: const 总结
- C++学习--const用法总结
- c中const和c++中const的学习总结
- [c++学习]const用法总结篇
- [c++学习]const用法总结篇
- C++学习(六) const用法总结
- 【C/C++学习】const用法总结
- let和const命令学习总结
- const总结
- const总结
- Const总结
- const总结
- const总结
- const总结
- OCP-1Z0-051-2015-25题
- windows 3.2平台编译及其打包
- 常用排序算法之希尔排序法
- 我的第一个github开源工程libpsd
- php页面静态化—实现页面纯静态化的原理
- const学习总结
- 递归练习
- 斑斓中国BlenderCN项目库
- 不规则ROI
- Improving the Beginner’s PID
- 栈-顺序存储结构-c语言
- Linux_5.3_线程同步
- IT人士应该知道的一个趋势-在线教育
- UITabBarController生命周期(使用storyoard搭建)