C++面试题和笔试题(三)

目录

一、在C++中,局部变量、静态局部变量、全局 变量、静态全局变量各自的作用域和生命周期是怎样的?

二、描述const 关键字在指针和引用上的使用方式及意义,如const int *p与int const *p有何区别,又如何int*const p和const int* const p?


一、在C++中,局部变量、静态局部变量、全局 变量、静态全局变量各自的作用域和生命周期是怎样的?

  1. 局部变量:局部变量是在函数内部声明的变量,其作用域仅限于该函数内部。

    自己的理解:局部变量就像你在家里的小玩具,只能在家里(函数里面)玩。当你离开家(函数结束)的时候,玩具(局部变量)就不能玩了,下次再回家的时候,那个玩具可能就不是上次的那个了。
     
  2. 静态局部变量:静态局部变量是在函数内部使用 static 关键字声明的变量。与局部变量不同,静态局部变量的作用域仍然仅限于函数内部,但其生命周期从程序开始执行时就存在,直到程序结束。即使函数被多次调用,静态局部变量也只会被初始化一次。

    自己的理解:静态局部变量就像你在家里养的小金鱼。虽然你每次离开家(函数结束),但小金鱼还在家里,不会消失。下次你回家(再次调用函数)的时候,小金鱼还在,而且它还记得你上次喂它吃了多少食物。
     
  3. 全局变量:全局变量是在函数外部声明的变量,可以在程序的任何地方访问。全局变量的生命周期从程序开始执行时就存在,直到程序结束。全局变量可以用于在多个函数之间共享数据。

    自己的理解:全局变量就像家里的大电视,整个家里的人(整个文件里的代码)都可以看到它,都可以使用它。但是,如果你去了朋友家(其他文件),可能就看不到家里的那个大电视了。
     
  4. 静态全局变量:静态全局变量是在函数外部使用 static 关键字声明的变量。与全局变量不同,静态全局变量只能在声明它们的源文件中访问。静态全局变量的生命周期与全局变量相同,从程序开始执行时就存在,直到程序结束。

    自己的理解:静态全局变量就像家里的秘密宝藏。虽然它像大电视一样可以在家里看到,但是如果你去了朋友家(其他文件),即使告诉他们你家有宝藏,他们也找不到,因为这个宝藏只有你自己知道。
     

二、描述const 关键字在指针和引用上的使用方式及意义,如const int *p与int const *p有何区别,又如何int*const p和const int* const p?

const 关键字位置指针或引用类型能否修改指针的地址能否通过指针修改值
const 在 *之前const int *p 或 const int& r不能
const 在 *之后int* const p 或 int const& r不能
const 在 * 前后const int* const p 或 const int& const r不能不能
  • 如果 const 出现在 *之前,则指针指向的对象是只读的,可以修改这个指针本身,让它指向别的变量。就像你有一个玩具,你不能改变这个玩具本身,但是你可以把它从一个地方拿到另一个地方。
  • 如果 const 出现在 *之后,则指针本身是只读的,通过这个指针来修改它所指向的变量。就像你有一个玩具,你不能改变这个玩具本身,但是你可以改变这个玩具的颜色。
  • 如果 const 出现在 * 前后,则指针和其指向的对象都是只读的,这个指针既不能被修改,也不能通过它来修改它所指向的变量。就像你有一个玩具,你既不能改变这个玩具本身,也不能改变这个玩具的颜色。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/738646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode 热题 100_螺旋矩阵

题解一: 模拟:定义四个边界,指针按右下左上的顺序遍历,每遍历一条边,边界就减一,并且在某个方向没有可以遍历的数时直接返回。 import java.util.ArrayList; import java.util.List;class Solution {publi…

[AIGC] Kafka解析:分区、消费者组与消费者的关系

Apache Kafka是一个分布式事件流平台,它是处理实时数据的强大工具。而理解Kafka的关键概念:分区(Partition)、消费者组(Consumer Group)和消费者(Consumer)的关系对于正确地使用Kafk…

【leetcode C++】最小栈

leetcode 155. 最小栈 题目 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获…

windows系统关机后自动重启解决方法

windows系统关机后自动重启解决方法 wini 进去系统设置的关于界面->高级系统设置高级->环境变量将自动重新启动取消->最后确定电源和睡眠->其他电源设置选择看电源按钮的功能更改当前不可用设置->取消快速启动 wini 进去系统设置的关于界面->高级系统设置 高…

Learn OpenGL 07 摄像机

定义摄像机参数 glm::vec3 cameraPos glm::vec3(0.0f, 0.0f, 3.0f);//摄像机位置glm::vec3 cameraTarget glm::vec3(0.0f, 0.0f, 0.0f);glm::vec3 cameraDirection glm::normalize(cameraPos - cameraTarget);//摄像机方向,指向z轴正方向 glm::vec3 up glm::vec…

SpringController返回值和异常自动包装

今天遇到一个需求,在不改动原系统代码的情况下。将Controller的返回值和异常包装到一个统一的返回对象中去。 例如原系统的接口 public String myIp(ApiIgnore HttpServletRequest request);返回的只是一个IP字符串"0:0:0:0:0:0:0:1",目前接口…

C++从零开始(day48)——map再深理解

这是关于一个普通双非本科大一学生的C的学习记录贴 在此前,我学了一点点C语言还有简单的数据结构,如果有小伙伴想和我一起学习的,可以私信我交流分享学习资料 那么开启正题 今天分享的是关于set和map的知识点 1.map的operator[ ] 1.1介绍…

20240309web前端_第一周作业_豆瓣电影

作业四&#xff1a;豆瓣电影 成果展示&#xff1a; 完整代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0…

探索计算机视觉的未来

目录 前言1 计算机视觉简介2 计算机视觉的基本原理2.1 图像获取2.2 图像预处理2.3 特征提取2.4 模式识别 3 深度学习与计算机视觉3.1 深度学习的基本原理3.2 深度学习在计算机视觉中的应用 4 计算机视觉的应用领域4.1 人脸识别4.2 物体识别4.3 图像分割4.4 视频追踪 5 未来发展…

Linux系统——命令行速查表

目录 一、系统相关命令 二、硬件相关命令 三、用户相关命令 四、文件相关命令 五、进程相关命令 六、文件权限相关命令 七、网络相关命令 八、压缩/打包相关命令 九、安装包相关命令 十、安装源&#xff08;编译&#xff09;相关命令 十一、搜索相关命令 十二、登录…

Midjourney从入门到实战:图像生成命令及参数详解

目录 0 专栏介绍1 Midjourney Bot常用命令2 Midjourney绘图指令格式3 Midjourney绘图指令参数3.1 模型及版本3.2 画面比例3.3 风格化3.4 图片质量3.5 混乱值3.6 随机数种子3.7 重复贴图3.8 停止3.8 垫图权重3.9 提示词权重分割 0 专栏介绍 &#x1f525;Midjourney是目前主流的…

Vue3全家桶 - VueRouter - 【3】嵌套路由【children】

嵌套路由【children】 如果在路由视图中展示的组件包含自己的路由占位符&#xff08;路由出口&#xff09;&#xff0c;则此处会用到嵌套路由&#xff1b;如图所示&#xff1a;点击关于链接&#xff0c;则会展示About组件&#xff0c;在其组件中又包含了路由链接和路由占位符&…

蓝桥杯-ISBN号码

此题然让本人纠结了很久&#xff0c;真的好多坑。。。。果然还是太菜了。 完整代码以及思路解析(在注释中) #include <iostream> using namespace std; int main() {string num;cin>>num; int count0;int w1;for(int i0;i<10;i){if((i!1)&&(i!5)) //坑…

常见的限流算法- python版本

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen 在系统的稳定性设计中&#xff0c;需要考虑到的就是限流&#xff0c;避免高并发…

【MySQL】ROW_NUMBER 窗口函数妙用之报告系统状态的连续日期

力扣题 1、题目地址 1225. 报告系统状态的连续日期 2、模拟表 表&#xff1a;Failed Column NameTypefail_datedate 该表主键为 fail_date (具有唯一值的列)。该表包含失败任务的天数. 表&#xff1a; Succeeded Column NameTypesuccess_datedate 该表主键为 success_…

Elastic Stack--08--SpringData框架

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 SpringData[官网&#xff1a; https://spring.io/projects/spring-data](https://spring.io/projects/spring-data) Spring Data Elasticsearch 介绍 1.SpringData-…

AI+X 高校行:首场浙大站爆满!

Datawhale线下 线下活动&#xff1a;AIX 高校行活动 AIX&#xff1a;希望将人工智能&#xff08;AI&#xff09;与各个学科和行业&#xff08;X&#xff09;结合&#xff0c; 激发无限潜力和创造力&#xff08;X&#xff09;&#xff0c;让年轻人拥有更多可能性&#xff08;X&…

Discord OAuth2授权以及机器人监听群事件

下面文章讲解获取OAuth2授权整个流程&#xff0c;创建机器人&#xff0c;使用机器人监听工会&#xff08;工会就是创建的服务器&#xff09;成员变化等等&#xff0c;对接国外的都是需要VPN的哦&#xff0c;对接的时候记得提前准备。 创建应用 点击 此页面添加应用,&#xff…

Midjourney绘图欣赏系列(七)

Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子&#xff0c;它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同&#xff0c;Midjourney 是自筹资金且闭源的&#xff0c;因此确切了解其幕后内容尚不…