1.软文推荐

2.软文推荐

3.软文推荐

const 是 constant 的缩写,本意是不变的,不易改变的意思。在 C++ 中是用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。

一、符号常量的声明

常量声明的语句的形式:  const + 数据类型说明符 + 常量名 = 常量值

数据类型说明符 + const + 常量名 = 常量值

注意:   符号常量在声明时一定要赋初值,且在程序中不能改变其值。

const float PI = 3.14159;                   //下面则是错误的声明                   const float PI;                    PI = 3.14159;

二、const* 和 *const 的区分

目前了解的形式

例如:

 const int *p (int const *p)

        int *const p

        const int* const p

1.const int *p (int const *p) 的意义

二者表达的意思一致,即 *p 是个 const ,不能通过 *p 修改 p 的指向,所以也可以叫它为只读型指针

由于是将指向的数据视为常量,定义的时候可以不用初始化

1.   int a = 0;     

    const int* p;     

    p = &a;     

    *p = 2; //错误,不能通过*p 修改值   
   2.   int a = 0;      

       const int* p = &a;      

       a = 1;      

       cout

2. int* const p 的意义

该定义将 p 视为一个const常量,所以定义时就要初始化,且p 指向的位置不能改变,所以也可以叫它指针常量

1.  int a = 0,b =1;
   int* const p = &a;
   p = &b;    //错误,p 的指向已不能改变
2.  int a = 0, b = 1;
   int* const p = &a;
   *p = b;
   cout 

(const int* p 与 int* const p 与 const int* const p 的区别)

const int* p 表示把 p 指向的变量看成常量

int* const p 表示把 p 自己定义为常量,所以定义时就要初始化

const int* const p 表示 p、*p 都是常量,即 p 的指向不能改变,也不能通过 *p 改变 p 指向的值

有个评论讲的很有意思,share一下:

看”effective c++”第三条讲到: 只需要判断const是在 * 的左边还是右边即可。 左边则是修饰被指物,即被指物是常量,不可以修改它的值; 右边则是修饰指针,即指针是常量,不可以修改它的指向; 在左右两边,则被指物和指针都是常量,都不可以修改。

int c = 3;
int a = 2;
int b = 1;
//const出现在*左边,则被指物是常量
const int * pi = &a;
*pi = b;//不正确 被指物是常量
pi = &c; //正确
//const 出现在* 右边,则指针是常量
int * const p = &a;
p = &c;//不正确,指针是常量
*p = c;//正确
//const出现在*左右两边,则被指物和指针都是常量
const int * const ptr = &a;
ptr = &c;//不正确,指针是常量
*ptr = c;//不正确,被指物是常量

注意事项 !

1.如果有const int a = 0; 那么必须是 const int* 才能指向 a,像 int* p =&a; 是非法的

2.const int a =10;

 int* p =&a; // 错误,这是不能取地址的,否则有修改值的能力

本文来源:www.lxlinux.net/7922.html,若引用不当,请联系修改。

相关文章 8

1

同一营业执照可以申请办理2个不同的域名网站吗?(同一营业执照可以有两个地址吗) 54秒前

本文转载,原地址:http://www.heyou51.com/zhishi/index.php?q-13967.html,原作者保留一切权利,若侵权请联系删除。...

2

珠海香洲外贸网站制作(珠海香洲官网) 2分钟前

广州合优网络科技有限公司 让您的网站走在互联网的前端!以最佳的用户体验,让客户随时随地找到您!所谓响应式网页建设,是指可以自...

3

使用Bash编写扫雷游戏 4分钟前

我在编程教学方面不是专家,但当我想更好掌握某一样东西时,会试着找出让自己乐在其中的方法。比方说,当我想在 shell 编程方面更进一...

4

Linux系统RPM详细使用教程 6分钟前

RPM是Linux系统非常重要的一个工具,除了核心模块不能通过RPM进行安装,其他模块均可通过RPM进行安装,下面良许教程网为大家分享一下Li...

5

app与小程序的区别(小程序和app区别) 8分钟前

小程序是一款基于微信的轻应用,面向10亿+的微信用户群体,具有四个特点:无需安装、无须卸载、触手可及、用完即走。因为它轻量、简...

6

简介Python3 面向对象 10分钟前

面向对象主要有三个特征:封装,继承,多态度,Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是...

7

深受喜爱的5款Linux服务器发行版 11分钟前

当谈到不同版本的操作系统时,Linux在市场上的地位是不言而喻的。其实,在服务器市场,Linux同样占有不容忽视的地位。由于其稳定性,安...

8

星梦云:夏日促销,四川100G高防4H4G10M月付仅60元;成都高防月付特价活动,续费同价 13分钟前

星梦云怎么样? 星梦云资质齐全,IDC/ISP均有,从星梦云这边租的服务器均可以备案,属于一手资源,高防机柜、大带宽、高防IP业务,一手...