Const *ptr ptr
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的更多相关文章
- 关于 const char *ptr,char const *ptr,char *const ptr 的讨论
对于每个做C/C++的伙伴来说,面试中少不了关于const 的考察,尤其是对于刚毕业的新人. 今天听见同事在讨论这个问题,就随手写一下自己的理解.希望对大家又所帮助. 首先来说一下char *ptr: ...
- 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 ...
- [OpenCV] Ptr类模板
1.C++泛型句柄类 我们知道在包含指针成员的类中,需要特别注意类的复制控制,因为复制指针时只复制指针中的地址,而不会复制指针指向的对象.这将导致当两个指针同时指向同一对象时,很可能一个指针删除了一对 ...
- opencv中ptr的使用
#include <QCoreApplication> #include<stdio.h> #include<opencv2/highgui/highgui.hpp> ...
- DNS详解: A记录,子域名,CNAME别名,PTR,MX,TXT,SRV,TTL
DNS DNS,Domain Name System或者Domain Name Service(域名系统或者域名服务).域名系统为Internet上的主机分配域名地址和IP地址.由于网络中的计算机都必 ...
- *(ptr++) += 123
*(ptr++) += 123; 等价于:*(ptr) = *(ptr) + 123; ptr++; 而不是:*(ptr++) = *(ptr++) + 123;程序员面试宝典p32 #include ...
- const用法小结
const与指针 char *const p --> char *(const p) --> 指针常量 char const *p --> char (const *p) --> ...
- 如何牢记C/C++中const的用法?
(下面以 typename 表示C/C++内某一类型 我常常会搞混 const 放在 typename* 的前面和后面的区别,今天特地查看了它们两个各自的含义,总结了一下: const typenam ...
- C++ const、volatile、mutable的用法 (转)
const.volatile.mutable的用法 鸣谢作者: http://blog.csdn.net/wuliming_sc/article/details/3717017 const修饰普通 ...
随机推荐
- Django:django后台传递数据到js中
#奇怪传递字典时前台接收不到???datalist= [{'site': '自强学堂', 'author': '涂伟忠'}]#只要列表能接收# datalist=[[93, 93, 0, 100.01 ...
- (生鲜项目)07. api view实现商品列表页
第一步: 环境配置 1. DRF官网: https://www.django-rest-framework.org/ 仔细查看自己当前的python版本以及django版本是否支持DRF, 然后就看看 ...
- Jenkins+MSbuild+SVN实现快速搭建.net持续集成环境(构建、编辑、部署到服务器)
Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建.net持续集成环境 Jenkins和SVN安装这里就不介绍了 一.准备工作 1.Jenkins中系统 ...
- SCART概念
SCART(Syndicat des Constructeursd' Appareils Radiorécepteurs et Téléviseurs)接口是一种专用的音视频接口,它是由法国公司Per ...
- python 在工程中处理相对路径的思考
首先就是 工程中的目录非常多.不能使用绝对路径. 只能使用相对路径. 我工程的目录: root_dir = os.path.dirname(os.path.abspath('.')) ## 获取相对目 ...
- Webpack配置开发环境总结
本文主要讲解webpack.config.js文件的配置,不会讲解webpack是什么,默认你会安装webpack及其它npm包,并对webpack有一些了解. 下面将从webpack.config. ...
- NationalInstruments project
//using NationalInstruments.NI4882; //请将项目文件中的"AutoGenerateBindingRedirects"属性设置为true //ht ...
- ubuntu系统里常用的几个命令
### ubuntu系统里常用的几个命令 卸载软件: sudo apt-get --purge remove easy-rsa //最后是包名, --purge是可选参数,加上的话移除配置文件 删除文 ...
- 利用Python进行数据分析_Pandas_数据加载、存储与文件格式
申明:本系列文章是自己在学习<利用Python进行数据分析>这本书的过程中,为了方便后期自己巩固知识而整理. 1 pandas读取文件的解析函数 read_csv 读取带分隔符的数据,默认 ...
- HADOOP 与 jupyterlab 链接
首先 咱们先把jdk1.0.0_60.tar.gz 和 hadoop-2.7.2.tar.gz 的压缩包放到root根目录下的opt文件夹下 如图: 然后 ...