1. const int *ptr = NULL; <=> int const *ptr = NULL;

1) 表示指向符号常量的指针变量,指针变量本身并非const所以可以指向其他变量。

2) const 的作用可以看作是“禁止通过*ptr"来改变被ptr指向的变量的值,但被指向的变量 其本身能否改变需要看其定义

eg: const int i = 1, int j = 2;

ptr = &i; // ok

*ptr = 27 // error

i = 2 // error i is const

ptr = &j; // ok

*ptr = 28; // error

j = 3; // ok

2. const int *ptr vs int * const ptr;

1) 要区分以上两种形式重点看const与*的相对位置:

const在*之前表示”指向符号常量的指针“

const在*之后表示”指向int类型变量的常量指针

注意:若声明成 int * const ptr = NULL;则ptr的值不可改即不可再指向其它变量,

但可以通过*ptr修改其指向的变量(如果指向了的话)。

2)识记技巧

看const修饰的是*ptr还是ptr?

当 const 在 * 之前可以认为 const修饰的是 *ptr,此时*ptr的”值“不可变,ptr的值可变

当 const 在 * 之后可以认为 const修饰的是 ptr,此时ptr的值不可变,*ptr的值可变

const修饰谁,谁的值就不可再变。

3. const int * const ptr;

1) 表示”指向int型符号常量的常量指针“

2) const 即修饰了 *ptr 表示不可通过*ptr修改其指向变量的值

又修饰了 ptr 表示ptr中的值不可再修改即不能再指向其他变量

Const *ptr ptr的更多相关文章

  1. 关于 const char *ptr,char const *ptr,char *const ptr 的讨论

    对于每个做C/C++的伙伴来说,面试中少不了关于const 的考察,尤其是对于刚毕业的新人. 今天听见同事在讨论这个问题,就随手写一下自己的理解.希望对大家又所帮助. 首先来说一下char *ptr: ...

  2. Why am I able to change the contents of const char *ptr?

    http://stackoverflow.com/questions/3228664/why-am-i-able-to-change-the-contents-of-const-char-ptr I ...

  3. [OpenCV] Ptr类模板

    1.C++泛型句柄类 我们知道在包含指针成员的类中,需要特别注意类的复制控制,因为复制指针时只复制指针中的地址,而不会复制指针指向的对象.这将导致当两个指针同时指向同一对象时,很可能一个指针删除了一对 ...

  4. opencv中ptr的使用

    #include <QCoreApplication> #include<stdio.h> #include<opencv2/highgui/highgui.hpp> ...

  5. DNS详解: A记录,子域名,CNAME别名,PTR,MX,TXT,SRV,TTL

    DNS DNS,Domain Name System或者Domain Name Service(域名系统或者域名服务).域名系统为Internet上的主机分配域名地址和IP地址.由于网络中的计算机都必 ...

  6. *(ptr++) += 123

    *(ptr++) += 123; 等价于:*(ptr) = *(ptr) + 123; ptr++; 而不是:*(ptr++) = *(ptr++) + 123;程序员面试宝典p32 #include ...

  7. const用法小结

    const与指针 char *const p --> char *(const p) --> 指针常量 char const *p --> char (const *p) --> ...

  8. 如何牢记C/C++中const的用法?

    (下面以 typename 表示C/C++内某一类型 我常常会搞混 const 放在 typename* 的前面和后面的区别,今天特地查看了它们两个各自的含义,总结了一下: const typenam ...

  9. C++ const、volatile、mutable的用法 (转)

      const.volatile.mutable的用法 鸣谢作者: http://blog.csdn.net/wuliming_sc/article/details/3717017 const修饰普通 ...

随机推荐

  1. ELK之elasticsearch7版本集群设置

    ELK7版本搭建参考:https://www.cnblogs.com/minseo/p/10948632.html node-1已经安装配置好 配置文件如下 [root@salt-test conf. ...

  2. wordpress通过$wpdp更新数据表内容

    如下面的代码 更新id为1的数据 table 指的是要更新的数据表 第一个数组 array( 'column1' => 'value1', 'column2' => 'value2' ) ...

  3. 使用pycharm调试django 打断点调试后台代码

    第一步 第二步 第三步 第四步 Script path:C:\pythonProject\Code\mysite\manage.py Parameters: runserver 远程访问的话 远程调试 ...

  4. VBA方法总结

    1.取得日文汉字的读音的方法(例如強→キョウ) Application.Getphonetic(str) 2.保存Excel文件时不弹出是否保存的alter wb.close(false) 3.提示消 ...

  5. 乐字节Java学习01-Java语言概述,Java发展前景,Java的特点

    从这篇文章开始,小乐准备写一整系列的Java学习文章,一步一步带您进入Java的神奇世界! 这是第一篇:Java语言概述以及Java的发展前景 1.SUN公司介绍 SUN公司全称是Stanford U ...

  6. [转帖]为何 CPU 只用硅,而不用能耗更低的锗制作?知乎好文章

    作者:鲁超链接:https://www.zhihu.com/question/28935966/answer/617701106来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  7. C++基础--函数重载

    函数重载定义: 在相同的作用域中具有相同的函数名而函数形参列表(参数类型.参数个数.参数顺序)不同的两个函数,称之为函数重载.注意:函数返回值类型并不是重载的条件. 函数重载优点: 可以使用相同的函数 ...

  8. 探索grafana

    因为zabbix的监控图形不够美观,功能也不够强大, 那么就用到了grafana 填写zabbix插件配置: 如下需要根据主机群组和主机名来完成图形: grafana报警如下: 解决如下: 更改标准设 ...

  9. 1234: 约瑟夫问题-输出最后的编号(Java)

    WUSTOJ 1234: 约瑟夫问题-输出最后的编号 参考资料 约瑟夫问题--百度百科 Description n个人围成一圈,依次从1至n编号.从编号为1的人开始1至k报数,凡报数为k的人退出圈子, ...

  10. Python开发【第三章】:函数介绍

    一. 函数介绍 1.函数是什么? 在学习函数之前,一直遵循面向过程编程,即根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复 ...