cost和指针的区别(cost指针和指向cost的指针)
导语:第12课 - 解析const和指针关系
一、C++的const常量的判别准则
(1)只有用字面量初始化的const常量才会进入符号表
(2)被volatile修饰的const常量不会进入符号表
(3)使用其它变量初始化的cosnt常量仍然是只读变量
(4)在编译期间不能直接确定初始值的const标识符,都被作为只读变量处理。
(5)使用相同类型的常量初始化const引用变量,const引用变量只是只读变量,和常量内存地址一样。
(6)使用不同类型的变量初始化const引用变量,const引用变量会成为一个新的只读变量,和初始化变量内存不一样。
上述的第(1)点如图1所示;第(2)、(3)、(4)点如图2所示;第(5)、(6)点如图3所示:
图1
图2
图3
二、引用与指针的关系
指针是一个变量,值为一个内存地址,不需要初始化,可以保存不同的地址;通过指针可以访问对应内存地址中的值;指针可以被const修饰成为常量或者只读变量。
引用只是一个变量的新名字;对引用的操作(赋值、取地址等)都会传递到代表的变量上,const引用使其代表的变量具有只读属性;引用必须在定义时初始化,之后无法代表其它变量。
从使用C++语言的角度看;引用与指针没有任何的关系;引用是变量的新名字,操作引用就是操作对应的变量。
从C++编译器的角度看;为了支持新概念“引用”必须要一个有效的解决方案,在编译器内部,使用指针常量来实现“引用”;因此“引用”在定义时必须初始化。
引用数组的使用和注意情况如图4所示:
图4
三、小结
(1)指针是一个变量;
(2)引用是一个变量的新名字;
(3)const引用能够生产新的只读变量;
(4)在编译器内部使用指针常量实现“引用”;
(5)编译时不能直接确定初始值的const标识符都是只读变量。
h
本文内容由小芦整理编辑!