【C++ 面试 - 基础题】每日 3 题(四)

✍个人博客:Pandaconda-CSDN博客

📣专栏地址:http://t.csdnimg.cn/fYaBd

📚专栏简介:在这个专栏中,我将会分享 C++ 面试中常见的面试题给大家~

❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

10. 常量 指针和指针常量区别?

const 修饰常量即指针常量

cpp 复制代码
int num = 100, num2 = 200;
int * const p = #
//p = &num2; //错误
*p = 111;   //正确

由于 const 修饰的是 p,所以 p 不能修改,即指针的值不能修改,即指针的指向不能修改。

const 修饰指针即常量指针

cpp 复制代码
int num = 100, num2 = 200;
const int * p = #
p = &num2; //正确
//*p = 111;//错误   

由于 const 修饰的是 *p,所以 *p 不能修改。

const 修饰指针又常量

cpp 复制代码
int num = 100, num2 = 200;
const int * const p= #
//p = &num2; //错误
//*p = 222; //错误

都不能修改。

引用和常量引用

引用的本质其实是:指针常量

即:int * const p = #

特点:和指针常量的特点一样,指向的值能改变,指针的指向不能改变。

常量引用的本质:const int * const p = #

特点:指针的指向和指向的值都不能更改。

11. C++ 的顶层 const 和底层 const

  • **顶层 const:**表示指针本身是常量,即指针本身不可修改,但所指向的对象可以修改。顶层 const 出现在指针左侧,或者作为函数返回类型时,表示指针是常量。

  • **底层 const:**表示指针指向的对象是常量,即指针所指向的值不可修改。底层 const 出现在指针右侧,表示指针指向的对象是常量。

12. 悬挂指针与野指针有什么区别?

  • 悬挂指针:当指针所指向的对象被释放,但是该指针没有任何改变,以至于其仍然指向已经被回收的内存地址,这种情况下该指针被称为悬挂指针;

  • 野指针:未初始化的指针被称为野指针。

相关推荐
CarIise1 分钟前
JavaScript基础语法与DOM操作实战课堂笔记
开发语言·javascript·笔记
啦啦啦啦啦zzzz3 分钟前
共享内存的网络聊天室
linux·服务器·网络·c++·网络编程
林森lsjs8 分钟前
零基础吃透二叉树:定义、遍历与高频算法 —数据结构柒
java·开发语言·数据结构·算法·二叉树
MacroZheng10 分钟前
又一个神级画图Skill开源,再见draw.io!
java·人工智能·后端
烤羊腿的程序员19 分钟前
前端面试知识点大全(带答案)
前端·面试·职场和发展
蜕变的土豆19 分钟前
SQLite文件加密完整教程:从零学会SQLCipher全库加密(C++实战)
c++·sqlite
bluesky96122221 分钟前
malloc 和 realloc C/C++
c语言·c++·算法
欧特克_Glodon27 分钟前
OpenCV计算机视觉开发入门与实践<二十三>:图像平滑之非线性滤波
c++·人工智能·opencv·计算机视觉
wind1003232 分钟前
Qt5Widgets.dll 缺失报错|游戏软件无法启动完整修复教程
开发语言·qt·游戏·电脑
我叫张土豆41 分钟前
在 OpenClaw Java 对话框输入一句话后,系统是如何运行的?
java·开发语言·人工智能