深入学习 const指针,const引用

指针和引用的区别:

1.指针可以为空,引用不可以为空。

2.指针初始化后可以重新指向新对象,引用初始化以为不可以重新绑定新对象,

3.指针可以在初始化时赋值,可以初始化以后通过赋值运算符(=)赋值;引用只能在初始化时赋值。

4.指针是个实体(占内存4byte),引用只是个别名(不占内存)

5.指针sizeof是4byte,引用sizeof是绑定对象的大小。

6.指针是类型安全,引用是类型安全的。

const对于指针和引用的区别:

int a = 1;

int b = 1;

const int *p1 = &a;表示p1所指 的对象a是不可以改变的

int const *p1 = &a;同上

int* const p1 = &a;表示p1是不可以改变的

const int &h1 = a;表示h1邦定的对象a是不可以改变的

int const &h1 = a;同上

int& const h1 = a;表示h1是不可以改变的(等效于int & h1  = a,因为引用h1邦定a后本身就是不可以改变的) 

深入学习 const指针,const引用

时间: 2024-10-29 19:10:43

深入学习 const指针,const引用的相关文章

const指针,指向const的指针,指向const的const指针 -- C

int main() { //记忆方法:中间加个"是"字变得很好理解 /* 指针函数 */ void * f(); //按顺序写,先写指针(void *),再写函数(f()) //指针是函数 -- 这个指针是一个函数. /* 函数指针 */ void (* f)(); //函数是指针 -- 这个函数是一个指针. //暂时没想到怎么记忆. /* const 指针 */ const int * a; /* 指向 const 的指针 -- 指针 const*/ int * const b;

C++ 指针与引用 知识点 小结

[摘要] 指针可以指向变量.数组.字符串.函数.甚至结构体.即指针可以指向不同数据对象.指针问题 包括 常量指针.数组指针.函数指针.this指针.指针传值.指向指针的指针 等.主要知识点包括:1.指针与引用在概念上的三个区别及其在const.sizeof.自增运算上的差异:2.熟记经典swap函数的指针实现与引用实现,并能反映输出错误的两个函数的思想弊端:3.熟记GetMem函数的错误形式以及错误产生的原因:4.比较数组.指针与静态变量作为函数返回值的差异:5.str.*str以及&str三者

const,指针与引用的关系

看完C++Primer第二章后,对于const,指针和引用以及后面的constexpr,auto之类的关系异常混乱,特此整理. 一.const必须初始化 const int i = 42; const int j = get_size(); 二.const 和 引用    1.常量引用(对常量的引用):将引用与一个常量对象绑定 const int ci = 42; const int &r1 = ci; 2.除此之外,允许一个常量引用绑定一个非常量的对象,字面值或表达式 int i = 42;

C++ Primer 第二章 引用 指针 const限定符

1.引用: 为对象起了另外一个名字,引用类型引用另外一种类型,通过将声明符写成&d的形式来定义引用类型,其中d也就是声明的变量名(声明符就是变量名). PS:1.通过图片中编译所提示的报错信息也可知,引用必须被初始化: 2.引用并非对象,相反的,它只是为一个已经存在的对象所起的另一个名字而已: 2.指针: 与引用类似,指针也实现了对其他对象的间接访问,不过,指针本身就是一个对象,允许对指针赋值与拷贝,而且在其生命周期内可以先后指向几个不同的对象(引用只能指向一个初始化的). 指针无须再定义时赋初

不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, const 对象的引用

[源码下载] 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象,  const 指针和指向 const 对象的指针, const 对象的引用 作者:webabcd 介绍不可或缺 Windows Native 之 C++ this 指针 对象数组 对象和指针 const 对象 const 指针和指向 const 对象的指针 const 对象的引用 示例1.CppEmployee 类CppEmployee.h #pragma

C++指针、引用、const

int a = 3; int *p = &a; //定义指针p指向变量a *p = 4; //*p代表a的值 int b = 5; p = &b; //p指向变量b *p = 6; //此时*p代表b的值 int c[3] = {2,5,7}; p = c; //此时p是指向数组c的指针,具体指向数组的第一个元素,即(&c[0]/p/c)三种写法等价 int a = 3; int &b = a; //定义引用b为变量a的引用,即a的别名(可理解为a的"外号&quo

【c++基础】const、const指针、const引用

一.const常量 声明时必须同时初始化(和“引用”一样) 二.const指针 三.const引用 引用本身和引用的对象都是const对象,可以用字面值来赋给const引用(普通引用则不行) 1 const B=1024; 2 const refB=B; //const变量的声明和初始化 3 4 const int &r=42;//字面值给const赋值 5 int &r2=42;//错 [c++基础]const.const指针.const引用

Duanxx的C++学习: const指针详解

Const指的是一个编译时的常量. 关键字const使得代码可以确定一个变量是否可以被修改. 使用了const后,可以防止对变量或者指针的修改:更重要的是,const的引用可以防止对所引用的对象的修改. 一般来说,在C语言中,对于一些常量的定义,我习惯性的使用define,而在C++中则最好改为使用const. 对于嵌入式程序而言,const的使用则是相当的微妙的,被const修饰后,其变量是存放在ROM中的,这一点很重要. 关于Const的指针的使用,文字解说没有意义,直接参见下面的代码及注释

Duanxx的C++学习: const指针具体解释

Const指的是一个编译时的常量. keywordconst使得代码能够确定一个变量能否够被改动. 使用了const后,能够防止对变量或者指针的改动:更重要的是,const的引用能够防止对所引用的对象的改动. 一般来说,在C语言中,对于一些常量的定义,我习惯性的使用define,而在C++中则最好改为使用const. 对于嵌入式程序而言,const的使用则是相当的微妙的,被const修饰后,其变量是存放在ROM中的,这一点非常重要. 关于Const的指针的使用,文字讲解没有意义,直接參见以下的代