C++学习之const指针和多维数组
来源:互联网 发布:淘宝店铺标志图片大小 编辑:程序博客网 时间:2024/05/20 19:32
这里的指针和后面讲的多维数组没有任何关系,之所以放在一篇文章中是因为,两个的内容都很少。
const int *p1; 表示指针p1指向的内容是不可改变的
int *const p2; 表示指针地址是不可改变的
const int *const p3; 表示指针的地址和内容都不可改变
有关const定义的量里,不可改变的是顶层const,可改变的是底层const。
const变量作为函数形参:
通常,函数 void func(const int &i);对于不需要改变的值,我们将它定义为const形式,以保证函数不会改变这个变量。
在函数重载中,void func(const int i);和void func(int i);是不可以重载的,虽然两个函数的参数类型不同,但是当我们用实参初始化形参时,编译器会自动忽略顶层const。也就是说,当形参有顶层const的时候,传给它常量对象和非常量对象都是可以的。而你调用func(int i)时也能传入非常量对象,这时编译器就无法区分你到底是想要调用哪一个func函数了。
注意:可以使用非const对象来初始化一个底层const,但是不能用const对象初始化一个非const对象。如:
int i;
const int &r = i;
const int *p = &i;
int *q = p; //wrong !
int &r1 = r; //wrong !
总之就是不能把一个const变量赋值给一个非const变量!!
多维数组:int a[3][4],这个好理解,实际上二维数组就是数组组成的数组,在这里a中一共有三个元素,每个元素都是一个长4的数组。
int aa[10][20][30]表示数组aa有10个元素,每个元素长20,这20个的长度中,每个都有30个元素。这样说不是很清楚,来换一种思想:共有10个父亲节点,这10个父节点均有20个孩子节点,每个孩子节点又都有30个子节点。即用树的概念去理解多维数组。
- C++学习之const指针和多维数组
- C 指针和多维数组
- C语言学习笔记(19) 多维数组和多维指针分析
- 《c和指针》--再谈多维数组
- 多维数组和多维指针
- 多维数组 和 多维指针
- 多维数组和多维指针
- 多维数组和多维指针
- 多维数组和多维指针
- 多维数组和多维指针
- C语言学习-----指针篇(1)-----指向多维数组的指针和指针变量
- 【C语言复习(十七)】多维数组和多维指针
- C语言深度剖析-----多维数组和多维指针
- C++学习笔记--指针和多维数组
- 多维数组和指针
- 指针和多维数组
- 多维数组和指针
- 指针和多维数组
- Spring中GetTemplate使用中,事务控制没有在Session的生命周期内起作用,而是中途提交了事务
- 常见排针连接器封装
- assign、retain、copy使用异同
- 局域网访问速度慢、文件传输慢的解决方法
- 训练深度神经网络的时候需要注意的一些小技巧
- C++学习之const指针和多维数组
- C算法-水仙花数
- Redhat Network File System (NFS) Guide
- 用SignalR 2.0开发客服系统[系列5:使用SignalR的中文简体语言包和其他技术点]
- Android 生成keystore,两种方式
- table添加标题
- 在Android Studio中配置LitePal
- Java synchronized详解
- 你的App真正适配了iOS 9吗?