C++面经:初始化全局变量和未初始化全局变量有什么区别
全局变量初始化而且初始值不为0,那么这样的全局变量是放在内存的.data段的,如果全局变量初始值为0或者未初始化,那么这样的全局变量是放在.bss段的。
考点:
考察C/C++语言内存模型,.data,.bss段存放的内容。
C语言内存模型(内存组织方式)
C程序开发并编译完成后,要载入内存(主存或内存条)才能运行,变量名、函数名都会对应内存中的一块区域。
内存中运行着很多程序,我们的程序只占用一部分空间,这部分空间又可以细分为以下的区域:
1.程序代码区:存放函数体的二进制代码。
2.静态数据区(data area):也称全局数据区,包含的数据类型比较多,如全局变量、静态变量、一般常量、字符串常量
(1).全局变量区和静态变量区的存储是返回在一块的,初始化的全局变量和静态变量在一块区域。未初始化的全局变量和未初始化的静态变量在相邻的另一区域。
(2).常量区域包括字符串常量和一般常量存储在另一区域
注意:静态区的内存在程序结束后由系统释放。
3.堆区:一般由程序员分配和释放,若程序员不释放,则程序运行结束后由系统回收。malloc(),calloc(),free(),操作的就是这块内存。
注意:这里的堆区不同于数据结构的堆,堆区的分配方式倒是和数据结构的链表比较相似。
4.栈区:由系统自动分配释放,存放函数的参数值和局部变量的值等。其操作方式类似于数据结构中的栈。
5.命令形参区:存放命令型参数和环境变量的值,如通过main()传递的值。
注意:未初始化的全局变量的默认值是 0,而未初始化的局部变量的值却是垃圾值(任意值)。
#include <stdio.h>#include <conio.h>int global;int main(){int local;printf("global = %d\n", global);printf("local = %d\n", local);getch();return 0;}
#include<stdio.h>#include<stdlib.h>#include<string.h>int a = 0; // 全局初始化区(④区)char *p1; // 全局未初始化区(③区)int main(){int b; // 栈区char s[] = "abc"; // 栈区char *p2; // 栈区char *p3 = "123456"; // 123456\0 在常量区(②),p3在栈上,体会与 char s[]="abc"; 的不同static int c = 0; // 全局初始化区p1 = (char *)malloc(10), // 堆区p2 = (char *)malloc(20); // 堆区// 123456\0 放在常量区,但编译器可能会将它与p3所指向的"123456"优化成一个地方strcpy(p1, "123456");}
相关文章:
C++面经:初始化全局变量和未初始化全局变量有什么区别
全局变量初始化而且初始值不为0,那么这样的全局变量是放在内存的.data段的,如果全局变量初始值为0或者未初始化,那么这样的全局变量是放在.bss段的。 考点: 考察C/C语言内存模型,.data,.bss段存放的内容。 …...
vue-2 指令:
指令 什么是html属性:就是用来扩展html标签的功能,属性是写在html的开发标签中:属性“属性值”, 指令就是用来扩展在vue中标签的功能 {{}} :模板语法,文本插值 不可解析html标签 {{ 可以写变量&#x…...
非常提效的7款原型工具推荐
原型图工具允许在开发前进行测试和迭代过程,可以帮助节省大量的开发时间和成本。在本文中,我们盘点了7个易于使用的原型图工具,以提高您的生产力! 1.即时设计 即时设计是一款免费的在线 UI 设计工具,无系统限制&…...
最新Kafka和RabbitMQ消息队列经典面试题汇总(含答案)
最新Kafka和RabbitMQ消息队列经典面试题汇总 1.消息队列的应用场景有哪些?2.RabbitMQ 有哪些优点?3.RabbitMQ 有哪些重要的角色?4.RabbitMQ 有哪些重要的组件?它们有什么作用?5.什么是消息持久化?6.RabbitMQ 要实现消息持久化,需要满足哪些条件?7.消息持久化有哪些缺点…...
软件测试行业对新人友好吗?
软件测试真的算是对新人小白非常友好的学科了,但是你也千万不要抱有幻想,觉得轻轻松松就能掌握真正的技能,然后如愿找到高薪工作。从0到1还是需要一个过程的,也是需要你付出相当大的努力去学习的 随着人工智能时代的到来…...
Python requests 模块
Python中的requests模块是一个HTTP客户端库,它允许您向任何Web服务器发送HTTP请求并获取响应。 下面是一个简单的示例,向某个网站发送一个HTTP GET请求: python import requests response requests.get("http://www.example.com&quo…...
IOC理论推导
1.UserDao接口 package com.kuang.dao;public interface UserDao {void getUser(); }2.UserDaoImpl业务接口 package com.kuang.dao;public class UserDaoImpl implements UserDao{Overridepublic void getUser() {System.out.println("默认获取用户数据");} }3.Us…...
我的一些感悟
记录一些感悟,不定时更新 当面临稍微突发的情况时,感到慌乱;遭遇一点挫折时,情绪低落;面对问题,不是首先思考解决办法,而是抱怨不已。这种心态基本上无法取得成功 做事雷厉风行,需要…...
NC 人力薪酬管理怎么结账?
NC 人力薪酬管理结账流程 1、先在【薪资发放】节点选择相应的薪资方案进行查询操作,然后进行计算操作; 2、计算操作完后,再进行审核操作; 3、如果薪资方案勾选了“发放数据需要审批”属性,则需要在【发放申请】节点…...
JavaWeb编程面试题——Spring Boot
目录 引言一、面试题导航二、面试题目1.什么是SpringBoot?2.谈谈你对SpringBoot的理解?3.为什么需要SpringBoot?4.SpringBoot的配置文件有哪几种格式?5.SpringBoot支持哪些日志框架?推荐和默认的日志框架是哪个&#x…...
Educational Codeforces Round 148 (Rated for Div. 2) A,B,C
A. New Palindrome 要求:对于一个回文串,判断是否可以转换为其他回文串 思路:如果回文串的前一半存在不相同的字符,就可以转换 #include<bits/stdc.h> using namespace std;int n; string s;void solve(){cin>>s;boo…...
C#串口通信从入门到精通(15)——流量控制(XON/XOFF协议实现)
文章目录 前言1、XON/XOFF流控原理介绍2、XON/XOFF发送端C#代码实现3、XON/XOFF接收端C#代码实现前言 通信双方在一个发送能力大于接收处理能力时若不限制发方的数据流量则最终会“淹没”接收方而导致数据丢失,针对这个问题常规的有硬件流控和软件流控方法,本文介绍的就是软…...
基于Kubernetes集群构建大中型企业CICD应用平台(2)--code阶段工具gitlab安装
这里我们为gitlab服务器准备一台虚拟机:192.168.19.6-gitlab服务器 在code阶段,我们需要将不同版本的代码存储到一个仓库中,常见的版本控制工具就是SVN或者Git,这里我们采用Git作为版本控制工具,GitLab作为远程仓库。…...
数字化转型浪潮下,如何选择适合企业的低代码平台
近日,艾瑞咨询发布了《数字新生态:中国低代码厂商发展白皮书》(以下简称“报告”),在该报告中,艾瑞咨询对中国当前的低代码市场进行了非常细致的解构,并针对当前企业数字化转型,对低…...
利用 Amazon API Gateway 和 Amazon Lambda 处理 Cloudfront 的内容请求
概述 国内 Amazon Cloudfront 目前不支持 Lambdaedge 功能,不能实现基于 CDN 的 A/B 测试、rewrite、redirect、token 认证和产生 response 等功能,本文介绍如何利用 API Gateway 和 Lambda 实现 Lambdaedge 的功能。下面实验介绍通过 request header 参…...
Parasoft和TASKING联手提供卓越的汽车软件开发和自动化测试
Parasoft与TASKING宣布建立合作 2023年4月26日,全球嵌入式软件测试解决方案领导者Parasoft宣布与汽车嵌入式软件开发工具行业领导者TASKING建立合作伙伴关系。Parasoft和TASKING的合作为汽车行业提供了一套完整的软件全生命周期解决方案,通过CI/CD工…...
java读取word文档内容
首先在pom文件引入依赖: <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.0.0</version> </dependency> <dependency><groupId>org.apache.poi</groupId&g…...
使用Process Monitor排查因dll库被锁定导致C++程序启动报“0xc0000022”错误问题
目录 1、问题描述 2、查找到异常值0xc0000022对应的标识STATUS_ACCESS_DENIED 3、使用Process Monitor定位到哪个dll库被隔离了 4、在360安全卫士中将被隔离的文件恢复了,但360并没有释放对文件的锁定 VC常用功能开发汇总(专栏文章列表,欢…...
Unity UI -- (1)概览
UI(User Interface,用户接口),是让用户和计算机或计算机应用交互的接口系统。 在实时3D项目中,UI通常是由文本、按钮、复选框、滑动条和单选框等组合出来的界面。这些元素使用特定规则或通知和用户进行交互。 UI设计是…...
玩转 LLMs 之基础设施「利刃出鞘」
LLMs 时代已经到来,这个由 ChatGPT 开始的全球化技术浪潮,所经之处,风起云涌。LLMs 之于当下,更像是 iOS 、Android 之于移动互联网时代。开发者沸腾,投资机构争抢,与赛道相关的基础设施建设自然也成为整个…...
掌握Argos Translate:离线翻译与隐私保护实战指南
掌握Argos Translate:离线翻译与隐私保护实战指南 【免费下载链接】argos-translate Open-source offline translation library written in Python 项目地址: https://gitcode.com/GitHub_Trending/ar/argos-translate 在当今数据隐私日益受到重视的时代&…...
P1061 Jam 的计数法【洛谷算法习题】
P1061 Jam 的计数法 网页链接 P1061 Jam 的计数法 题目描述 Jam 是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。 在他的计数法中,每个数字的位数都是相…...
2步实现格式自由:Save Image as Type让网页图片转换体验升级10倍
2步实现格式自由:Save Image as Type让网页图片转换体验升级10倍 【免费下载链接】Save-Image-as-Type Save Image as Type is an chrome extension which add Save as PNG / JPG / WebP to the context menu of image. 项目地址: https://gitcode.com/gh_mirrors…...
C语言与C++内存分配:malloc、new用法及区别全解析
好多程序员在才开始触及接触C之际的时候,老是被内存分配弄得晕头转向不知所措。new和malloc究竟到底有什么区别呢?为何为什么C语言仅仅只能用malloc,然而但C却又存在有好几种new呢?弄不明白搞不清楚这些,所编写写出来的…...
避坑指南:用Dify搭建AI Agent时,Docker镜像拉取失败和Postman接口调试的那些坑
避坑指南:用Dify搭建AI Agent时的高频问题解决方案 当你第一次尝试用Dify搭建AI Agent时,可能会遇到各种意想不到的"坑"。从Docker镜像拉取失败到Postman接口调试报错,每一步都可能让新手开发者抓狂。本文将聚焦这些实操中的真实痛…...
Linux g++编译与GDB调试完整流程(文末附图)
验证安装 C which g g --versionC which gcc gcc --version安装 **centOs**:sudo yum install gcc **centOs**:sudo yum install g **ubuntu**:sudo apt-get install gcc **ubuntu**:sudo apt-get install g **kyLin**:…...
探索Lumerical建模计算可调谐光学手性
Lumerical建模计算可调谐光学手性在光学领域,可调谐光学手性是一个极具吸引力的研究方向。而Lumerical作为一款强大的光学仿真软件,为我们深入探究这一领域提供了有力工具。 什么是可调谐光学手性 光学手性简单来说,描述的是光与物质相互作用…...
Outline完整指南:如何搭建高效团队知识库与协作文档系统
Outline完整指南:如何搭建高效团队知识库与协作文档系统 【免费下载链接】outline Outline 是一个基于 React 和 Node.js 打造的快速、协作式团队知识库。它可以让团队方便地存储和管理知识信息。你可以直接使用其托管版本,也可以自己运行或参与开发。源…...
别再只建桶了!华为云OBS的5个高阶配置,让你的存储成本直降30%
别再只建桶了!华为云OBS的5个高阶配置,让你的存储成本直降30% 当你的业务数据量突破TB级时,存储成本就会像野马一样失控。去年我们团队就经历过这样的教训——每月OBS账单突然暴涨40%,排查后发现是数百GB的过期日志仍按标准存储计…...
YOLOv8在智慧农业中的落地实践:如何提升植物病害检测准确率到90%+
YOLOv8在智慧农业中的落地实践:如何提升植物病害检测准确率到90% 在智慧农业领域,植物病害的早期识别与精准诊断一直是技术攻关的重点。传统人工检测方式不仅效率低下,而且受限于专家经验,难以实现规模化应用。随着计算机视觉技术…...
