const与指针

原创 2015年11月20日 11:16:52
把*读作"pointer to",从右至左念:


b是一个常量
const int b;  /* b is a int const */
int const b;  /* b is a const int */


p是一个普通指针,指向一个常量
const int *p; /* p is a pointer to int const */
int const *p; /* p is a pointer to const int */


p是一个常量指针,指向一个普通变量
int *const p;  /* p is a const pointer to int */


p是一个常量指针,指向一个常量
const int *const p;  /* p is a const pointer to int const */
int const *const p;  /* p is a const pointer to const int */
-------------------------------------------------------------------
1. 首先,看变量定义是否有星号(*)
int *ival;


int const cval1;
const int cval2;


const int *icval1;
int *const icval2;


1.1 没有星号,则两个定义等价
1)将const靠近变量
2)const变量必须定义初始化


int const cval1; 
const int cval2; -> int const cval2;


1.2 有星号,没有const
int *ival;


=> 指向int类型的指针


1.3 有星号, 有const
1) const后面是变量或者变量类型
int *const icval2; //后面是变量
const int *icval1; //后面是变量类型


2) 变量,const修饰变量, 表明该变量是一个常量,必须定义初始化
int *const icval2; //后面是变量


=> 表明变量是const指针,
=> 指向int类型的const指针


3) 类型,const修饰变量类型
const int *icval1; //后面是变量类型


=> 表明变量是非const指针
=> 指向const int类型的非const指针


2. 判断下面的类型,并写出等价的等式
typedef string* pstring;
const pstring ptr;


==
分析:
const pstring ptr;
1. 没有星号
1)将const靠近变量
2)const变量必须定义初始化
pstring const ptr;


3)将pstring分解
string *const ptr;


==
重新分析:
string *const ptr;


=> 指向string类型的const指针





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

const与指针的简单解析

  • 2013-11-29 13:35
  • 435B
  • 下载

const指针的使用

C++中有关const修饰指针和变量

const限定符以及const修饰指针生命   1.const关键字并不是c++中特有的关键字,而是c90中新增的标准。const经常被我们用于常量的声明和指针的修饰。当变量被const限定符修饰时,...

const 指针

const与指针的关系

  • 2012-09-07 09:42
  • 18KB
  • 下载

2013级C++第6周(春)项目——对象指针、const 【项目2 - 对象作为数据成员】

/* * 程序的版权和版本声明部分 * Copyright (c)2013, 在校学生 * All rightsreserved. * 文件名称: 项目2.cpp * 作 者:刘旺 * 完成日期...

虚函数与const指针

  • 2014-08-29 09:19
  • 40KB
  • 下载

C++ const与指针关系

关键字const在c++编程语言里面有着非常重要的江湖地位,同时也是各大公司笔试题的关注点。     下面简要介绍一下const与指针的关系。     char greeting[]="hello...

CONST指针指针

  • 2014-05-06 23:16
  • 36KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)