primer学习笔记2 const

原创 2006年06月09日 02:30:00

const
把一个对象转换成一个常量(constant)
例如  const int size =10;
size的值将不能改变,在程序中任何改变这个值的企图都将导致编译错误。
因此称为只读(read——only)属性
因为常量在定义后就不能被修改,所以必须被初始化,否则将导致错误。


被const修饰过的对象可以被指针指向,但是必须是const类型的指针,这么说可能有些晦涩。换个说法,指针可以指向const类型的对象,但是必须是const类型的指征。
定义一个const类型的指针 
const int *pi

这是由于指针的超灵活性,比如你可以直接修改地址里的值,而便机器却不管用于那个地址的值是不是属于const类型的,所以任何“试图将一个非const对象的指针指向一个常量对象” 的动作都将引起编译错误,从语法上限制,呵呵。

来看
const int *pi
pi是一个指向int类型的,被定义成const的对象的指针。
不过pi指向的对象不能被修改,但是pi可以重新被赋值指向其他对象。

const对象的地址只能赋值给指向const对象的指针。但是,指向const对象的指针可以被赋给一个非const对象的地址,不过不能通过它修改它所指向的地址的指。
把一个const指针指向一个对象(const或者非const类型都可行,反正都没办法改,)//目前关于这点,尚不太理解,                                                                                                                                    //有些说法没有完全理解  

int *const pi = &i  // int i;


pi是指向一个非const对象(或许const对象,看i而定)的cont指针

实际应用中,指向const的指针常被用作函数的形参,用来作为一个约定的保证。
如  int strcmp(const char *str1,const char *str2);

指向const对象的const指针的定义是把const对象的定义 和 指向const对象的指针的定义结合起来
定义const对象    const int i
定义const指针    const int *const pi =  &i   // const int i;

C++ Primer Plus学习笔记之const修饰指针

《C++ Primer Plus》学习笔记之const修饰指针 首先来谈一下const与define的区别,大家都知道两者都可以定义常量,但是define有一个明显的缺陷:没有类型信息; 例如: #...

C++Primer学习笔记—(const限定符)

(1)在const创建的对象中需要注意的问题是const对象一旦被创建就无法更改,同时const对象定义是要初始化。 注意定义格式:例:const int limit=10, 错误:const int...

c++primer学习笔记(3)-Compound Types(pointers and references) and const Qualifier.

1. The concept of Compound Types: A compound type is a type that is defined in terms of another typ...

[C++ Primer Plus学习笔记Ⅱ]const的用法归纳与整理

const的用法 可以用两种不同的方式将const关键字用于指针。第一种方法是让指针指向一个常量对象, 这样可以防止使用该指针修改所指向的值,第二种方法是将指针本身声明为常量, 这样可以防止改变...
  • xy_cpp
  • xy_cpp
  • 2017年06月06日 15:58
  • 281

C++ Primer 学习笔记与思考_8 指针和const的那些麻烦

(一)数组的下标和指针的关系 我们以前知道,在表达式中使用数组名时,实际使用的是指向数组第一个元素的指针。当我们使用下标访问数组时,实际上是对指向数组元素的指针做下标操作,只要数组指向数组元素,就可...
  • NK_test
  • NK_test
  • 2015年08月22日 18:34
  • 1228

C++ Primer学习笔记5 变量和基本类型(const限定符、引用、typedef名字、枚举)

1、const限定符 定义一个变量代表某一个常数存在严重的问题,变量可以被修改,如果用const限定符可以解决此问题,把一个对象转换为常量。 const  int  bufSize = 512; ...

c++primer学习笔记-----2.4const限定符

const 限定符的核心价值就是防止误操作改变了不须改变的变量的值 const 对象一旦创建后就不能发生任何改变,因此必须在定义的同时进行初始化(字面值、任意表达式均可) const 对象的文件间共享...

C++ Primer 学习笔记与思考_4 ---getline&&size_type&&const_iterator混搭

(一)getline的用法     我们在使用string读入字符串的时候,其输入操作符: * 读取并忽略开头所有空白字符(如空格,换行符,制表符) * 读取字符直至再次遇到空白字符,读取终止。...
  • NK_test
  • NK_test
  • 2015年08月14日 10:45
  • 1212

C++ Primer 学习笔记_23_函数(续2) --局部对象、内联函数、类的成员函数

函数 --局部对象内联函数类的成员函数 一局部对象二内联函数三类的成员函数 函数 --局部对象、内联函数、类的成员函数 一、局部对象     在C++语言中,每个名字都有作用域,每个...

顺序容器 - 2【C++ Primer 学习笔记 - 第九章】

list ilist(10); // 空容器:*ilist.begin() 无法解引用 // 空容器:back()、front() 操作,未定义 if(!ilist.empty()) { list:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:primer学习笔记2 const
举报原因:
原因补充:

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