c++ const修饰指针
来源:互联网 发布:微信红包埋雷软件 编辑:程序博客网 时间:2024/05/19 20:46
#include <stdio.h> #define MONTH 12void main() {const int days[MONTH] = {11,22,33,44,55,55,66,77,88,88,99,99};//days[4] = 11;编译错误 指向常亮的指针不能用于修改数值 double rates[5] = {88.99,100.12,59.45,183.11,11.11};const double *pd = rates;//pd指向数组的开始处//*pd = 28.89;不允许//pd[2] = 22.22;不允许rates[2] = 99.99;//允许 因为rates不是常量//无论是采用数组符号还是指针符号,都不能使用pd修改所指向数据得值,但注意了因为rates并没有声明为常量,所以仍可以使用rates来修改其数值,另外要注意,还可以让pc指向其他地址pd++;//让pd指向rate【1】 //关于指针赋值和const有一些规则需要注意,首先,将常量或非常量数据的地址赋给指向常量的指针是合法的:double rate[5] = { 88.99,100.12,59.45,183.11,340.65 };const double locked[4] = { 0.08,0.1,0.2,0.3 };const double *pc = rates;//合法pc = locked;//合法pc = &rates[3];//合法//然而,只有非常量数据的地址才可以赋给普通的指针:double rates[5] = { 1.0,2.0,3.0,4.0,5.0 };const double locked[4] = { 0.1,0.2,0.3,0.4 };double* pnc = rates;//合法//pnc = locked; 非法pnc = &rates[3];//合法//这样的规则是合法的,否则,您就可以使用指针来修改被认为是常量的的数据。 //const初始化指针来保证指针不会指向别处double rates[5] = { 1.0,2.0,3.0,4.0,5.0 };double * const pcc = rates;//pc指向数组的开始处//pcc = &rates[2];//不允许*pcc = 1.0;//可以,更改rates[0]的值//这样的指针仍然可以修改数据,但它只能指向最初赋给它的地址 //可以用两个const来创建指针,这个指针既不可以更改所指向的地址,也不可以修改所指向的数据double rates[5] = { 1.0,2.0,3.0,4.0,5.0 };const double* const pccc = rates;//pccc = &rates[2];不允许//*pccc = 92.99;不允许}
阅读全文
0 0
- [c/c++]const修饰指针
- C:带有const修饰的指针解读
- C语言--const修饰指针解析
- C语言const关键字修饰指针
- C:带有const修饰的指针解读
- c语言中const修饰指针变量
- C/C++ const 修饰指针变量
- C++:带有const修饰的指针解读
- const 修饰 指针
- const修饰指针
- 关于const修饰指针
- const修饰指针 变量
- const修饰指针
- 关于const修饰指针
- const修饰指针
- const 修饰指针
- 关于const修饰指针
- c++ const修饰指针
- Eclipse 4.7(Oxygen)
- 单元测试--Junit
- Docker认识、安装及使用(windows7)
- 最火的前端开发框架Bootstrap使用教程
- 关于安卓调用wcf的一些问题
- c++ const修饰指针
- maven install 说缺少符号
- 并发编程之生产者消费者
- js常用分割取字符串的方法
- Linux修改hostname时/etc/hosts、/etc/sysconfig/network ,hostname
- IDEA运行web工程报错,Error running wis-client-web: SSL HTTP Connector node not found: set up one in the ser
- [python计算金额]decimal常用操作
- Spring Cloud配置中心获取不到最新配置信息的问题
- class文件结构[4]