欢迎来真孝善网,为您提供真孝善正能量书籍故事!

C++指针与引用全面解析:深入理解指针常量与常量指针

时间:11-03 现代故事 提交错误

大家好,今天来为大家分享C++指针与引用全面解析:深入理解指针常量与常量指针的一些知识点,和的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

(1)引用不能为空,但指针可以为空。正如前面提到的,引用是对象的别名。如果引用为空,——个对象都不存在,怎么会有别名!因此,在定义引用时,必须对其进行初始化。

(2) 引用不能改变其指针并保持附加到对象直到死亡;但是指针可以改变它的指针并指向其他对象。注意:虽然引用不能改变指针,但它可以改变初始化对象的内容。比如++操作,对引用的操作直接反映了指向的对象,而不是改变指针;而对指针的操作将使指针指向下一个对象,而不是改变所指向对象的内容。请参阅下面的代码:

#includeusing命名空间std;

int main(int argc,char** argv)

{

整数i=10;

int ref=i;

参考++;

cout"i="对ref的++操作直接体现在指向的变量上。将"ref=j" 重新分配给引用变量ref 不会改变ref 的点。它仍然指向i,而不是j。当然,此时对ref进行++操作不会影响j。如果这些都是指针的话,情况就会大不一样了。请自行实验。输出如下:

引用的大小就是指向的变量的大小,因为引用只是一个别名;指针是指针本身的大小,4个字节。 int main()

{

字符串str="123456";

字符串str_ref=str;

字符串*str_ptr=str;

cout"str.size="引用比指针更安全。引用是安全的,因为不存在空引用,并且一旦引用被初始化为指向一个对象,就无法将其更改为对另一对象的引用。对于指针来说,它可以随时指向其他对象,而且不能初始化,也不能为NULL,所以不安全。虽然const指针不能改变其指向,但仍然存在空指针,并且可能会产生野指针(即多个指针指向一块内存,释放一个指针后,其他指针都变成野指针)。指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名,引用不改变指向。

2、常量指针、常量引用、指针常量

2.1常量指针

常量指针:指向常量的指针。在指针定义语句的类型前添加const,表示所指向的对象是常量。

整数i=10;

常量int* p=i;

*p=20; //错误的

我=20;

算我结束; //20

cout (*p) endl; //20 常量指针定义"const int*pointer=a" 告诉编译器* 指针是一个常量, * 指针不能作为左值进行操作。但是可以通过修改i的值来修改*p的值。

2.2常量引用

常量引用:指向常量的引用。在引用定义语句的类型前添加const,表示所指向的对象是常量。与指针一样,您不能使用引用来重新分配所指向的变量。

整数i=10;

常量int ref=i;

参考=20; //错误的

我=20;

计算参考结束; //20 可以将ref理解为常量,不能直接修改,但是可以通过修改i的值来修改ref的值

2.3 指针常量

在指针定义语句中的指针名称前添加const,表示指针本身是常量。指针常量在定义时必须初始化!这是参考文献固有的属性。引用指针定义语句的引用名前不需要加const。

int* 常量p; //错误,必须在声明的同时初始化

整数b=10;

int* const 指针=b; //正确的

整数c=20;

指针=c; //错误

*指针=c;

c=30;

计算b结束; //20

cout *指针endl; //20

cout c endl; //30 指针常量定义"int* const point=b" 告诉编译器,pointer是常量,不能作为左值操作,但允许修改间接访问值,即*pointer可以修改。 (指针是固定地址,不能修改,但是放在这个地址的值总是可以修改的,并且指针不能再指向其他数据)

2.4 常量指针常量

int c=10;

const int *const 指针=c;

c=20;

cout *指针endl; //20 常量指针常量:指向常量的指针常量。可以定义一个指向常量的指针常量,定义时必须对其进行初始化。常量指针常量定义"const int* const pointer=c"告诉编译器pointer和*pointer都是常量,它们都不能作为左值进行操作。

3.题目

const char * arr="123"; //不可修改,"123"放置在静态存储区

字符* brr="123"; //"123" 不能修改并放入静态存储区

用户评论

tina

C++ 程序员必备的基础知识啊!

    有19位网友表示赞同!

非想

我对指针的概念一直有点迷茫,这篇文章应该能帮我理清楚!

    有13位网友表示赞同!

冷落了♂自己·

学习新语言最怕不知道哪里入手,讲解详细的教程真好用

    有16位网友表示赞同!

惦着脚尖摘太阳

之前看过点关于引用的内容,现在想更深入学习一下

    有17位网友表示赞同!

红尘烟雨

指针常量和常量指针的区别在哪里啊?我记得好像比较容易混淆

    有10位网友表示赞同!

发型不乱一切好办

这方面的内容一般都是考试重点,需要好好复习一遍

    有10位网友表示赞同!

太易動情也是罪名

C++ 的操作方法真的好多,总觉得有点摸不着北...

    有18位网友表示赞同!

孤败

文章写得很容易理解,关键点解释得很清楚!

    有16位网友表示赞同!

我怕疼别碰我伤口

指针和引用在实际编程中经常用到吧?

    有12位网友表示赞同!

铁树不曾开花

看来要多练习才能掌握这些概念,否则容易忘记。

    有14位网友表示赞同!

猫腻

感觉C++学习路径真的很复杂,一步一个坑...

    有14位网友表示赞同!

风中摇曳着长发

这篇文章刚好对标我的知识缺口,感谢分享!

    有7位网友表示赞同!

瑾澜

指针的概念听起来就比较抽象,需要慢慢理解。

    有15位网友表示赞同!

全网暗恋者

学习代码确实是一步一步来,不能急于求成。

    有13位网友表示赞同!

命里缺他

这个标题看起来就很专业的样子...

    有15位网友表示赞同!

不忘初心

希望这篇教程能帮我解决一些编程难题!

    有9位网友表示赞同!

你瞒我瞒

C++真强大啊,指针和引用都应用得如此灵活!

    有11位网友表示赞同!

秘密

学习编程就像开辟新大陆,总有全新的发现!

    有15位网友表示赞同!

反正是我

分享这种干货真的很棒!大家赶紧去看看吧。

    有6位网友表示赞同!

々爱被冰凝固ゝ

感觉C++真的需要多练才能驾驭。

    有15位网友表示赞同!

【C++指针与引用全面解析:深入理解指针常量与常量指针】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活