简介:

本文主要介绍C/C++中,const int*, const int * const, 和 int const *用法的区别,以及相关的示例代码。

1、const int, const int * const, 和 int const 简介

int* :指向 int 的指针

int const * :指向 const int 的指针。

int * const :指向 int 的 const 指针。

int const * const :const 指向 const int 的指针。

const可以在类型的任一侧,如下:

const int * == int const *
const int * const == int const * const

2、常量引用
对变量(此处为 int)的引用,该变量是常量。主要是将变量作为引用传递,因为引用的大小比实际值要小,但是有一个副作用,就是实际变量的别名。我们可能会通过对别名的完全访问而意外更改主变量,因此我们将其设为常量以防止这种副作用。

int var0 = 0;
const int &ptr1 = var0;
ptr1 = 8; // 报错
var0 = 6; // 正常

3、常量指针
一旦常量指针指向一个变量,就不能指向任何其他变量。

int var1 = 1;
int var2 = 0;
int *const ptr2 = &var1;
ptr2 = &var2; // 报错

4、指向常量的指针
一个不能改变它所指向的变量值的指针被称为常量指针。

int const * ptr3 = &var2;
*ptr3 = 4; // 报错

5、常量指针
指向常量的常量指针是一个指针,既不能改变它指向的地址,也不能改变保存在该地址的值。

int var3 = 0;
int var4 = 0;
const int * const ptr4 = &var3;
*ptr4 = 1;     // 报错ptr4 = &var4; // 报错

了解更多分析及数据抓取可查看:
http://data.yisurvey.com:8989/
特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理。

C++中const int*, const int * const, 和 int const *区别相关推荐

  1. c语言const 修饰二级指针,C++中const修饰二级指针(从类型‘int**’到类型‘const int**’的转换无效)...

    先上代码: void func(const int ** arg) { } int main(int argc, char **argv) { int **p; func(p); return 0; ...

  2. const volatile同时限定一个类型int a = 10

    const和volatile放在一起的意义在于: (1)本程序段中不能对a作修改,任何修改都是非法的,或者至少是粗心,编译器应该报错,防止这种粗心: (2)另一个程序段则完全有可能修改,因此编译器最好 ...

  3. const int是什么类型_C++的const语义

    背景 我们都知道,const作为修饰符的时候,用来表明这个变量所代表的内存不可修改.因此,const修饰的变量必须在定义的时候就完成初始化,不然以后也没有机会了: const 但是请注意,这个不可修改 ...

  4. 错误 LNK2019 无法解析的外部符号 “__declspec(dllimport) public: int __thiscall osg::Referenced::ref(void)const “

    前言 错误 LNK2019 无法解析的外部符号 "__declspec(dllimport) public: int __thiscall osg::Referenced::ref(void ...

  5. c语言 define和int,C语言中define与const的用法区别分析

    其实这个是困惑了我好久的问题,没想到在上机课做到的题里找到了答案--我的困惑是:#define与const到底有什么区别. 题目:  代码如下 复制代码 #define N 2 #define M N ...

  6. c语言中{的作用,C语言中Static和Const关键字的作用

    C语言中Static和Const关键字的作用 程序的局部变量存在于(堆栈)中,全局变量存在于(静态区 )中,动态申请数据存在于(堆)中.那么关于C语言中Static和Const关键字的作用,你了解多少 ...

  7. const在函数前与函数后的区别 [转]

    [转] http://blog.csdn.net/clozxy/article/details/5679887 一   const基础           如果const关键字不涉及到指针,我们很好理 ...

  8. c++中几种常见的类型转换。int与string的转换,float与string的转换以及string和long类型之间的相互转换。to_string函数的实现和应用。...

    1.string转换为int a.采用标准库中atoi函数,对于float和龙类型也都有相应的标准库函数,比如浮点型atof(),long型atol(). 他的主要功能是将一个字符串转化为一个数字,在 ...

  9. c语言const限制什么,[C语言]类型限定词const解析

    标签: 作为C90增加的一个受限类型关键字,const赋予了它修饰的变量一个新属性--不变性,如果一个变量声明中带有关键字const,则无法通过赋值.增减运算来修改该变量的值. 一.指针与const结 ...

  10. 类与对象:类的6个默认成员函数: 构造函数、析构函数、拷贝构造函数、赋值操作符重载、默认拷贝构造与赋值运算符重载的问题、const成员函数、 取地址及const取地址操作符重载

    1.类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类.任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数. 构造函数 析构函数 拷贝构造函数 赋值操作符重载 const成员函数 ...

最新文章

  1. php exchange,PHP SDK for digital currency exchange
  2. 【正一专栏】梅西、内马尔分开明天会更好
  3. 允許Linux的snmp服務被查詢
  4. JEECG 移动端解决方案
  5. Calendar类和GregorianCalendar类
  6. 跟我一起数据挖掘(19)——什么是数据挖掘(2)
  7. 自动化刷EOS资金盘(类Fomo3D)游戏
  8. 毕业设计论坛,免费毕业设计资源下载
  9. 微型计算机控制技术赖pdf,微型计算机控制技术.pdf
  10. dev:dev fatal: HttpRequestException encountered. remote: Invalid username or password. fatal: Authen
  11. windows-xp桌面图标有蓝底怎么去掉:电脑桌面图标有蓝色阴影的解决办法
  12. jupyter notebook无法连接python3服务器内核 一直显示正在连接服务器
  13. cns服务搭建+手机ml,百度直连
  14. LVGL hal disp(porting display)
  15. 创建facebook_我如何重新创建Facebook的微交互以进行功能发现
  16. 程序员如何找对象(1)
  17. 电脑文档需要服务器登录,云服务器需要用电脑登录
  18. 12个 Linux 命令的超级用法实例,超实用!
  19. DDD为什么能火起来?和微服务有啥关系?
  20. VSCode 安装与配置

热门文章

  1. ST官网下载STM32固件库
  2. 阿里云官方学习课程推荐-Linux运维学习路线 从事云计算运维相关工作必备技能
  3. php区分线上环境和测试环境
  4. android 控制中心os,Phone X Launcher, OS 11 iLauncher Control Center
  5. 微信小程序中的iPhone X适配解决
  6. 如何恢复vscode的默认配置_史上最全vscode配置使用教程
  7. 图片怎么加logo水印
  8. 京东财报图解:年营收9516亿增28% 全渠道取得阶段性进展
  9. Python queue
  10. CFileDialog 和 CFileDialog构造函数