【C语言基础】嵌入式面试经典题(C语言篇)----有新的内容会及时补充、更新!

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处

文章目录

  • 进程和线程有什么区别?
  • 程序的局部、全局变量存在于哪里,动态申请数据存在于哪里?
  • 静态局部变量和全局变量的区别
  • 关键字const有什么作用?
  • 关键字static有什么作用?
  • 局部变量能否和全局变量重名?
  • Union和结构体之间的区别
  • 什么是指针?
  • 栈和堆的区别?
  • 什么是内存泄漏?
  • 单片机程序跑飞是什么意思?
  • 描述一下C语言从代码到可执行程序的过程


进程和线程有什么区别?

答:进程是并发执行的程序在执行过程中分配和管理资源的基本单位。线程是进程的一个执行单元,是比进程还要小的独立运行的基本单位。一个程序至少有一个进程,一个进程至少有一个线程。

程序的局部、全局变量存在于哪里,动态申请数据存在于哪里?

答:程序的局部变量存在于栈区;全局变量存在于静态区;动态申请数据存在于堆区。

静态局部变量和全局变量的区别

答:静态局部变量的这种特性,和全局变量非常相似。他们的相同点都是创造和初始化一次,以后调用时值保持上次的不变。不同点在于作用域不同。

关键字const有什么作用?

答:用const定义的变量的值是不允许改变的,即不允许给它重新赋值,即使是赋相同的值也不可以。所以说它定义的是只读变量,这也就意味着必须在定义的时候就给它赋初值。

关键字static有什么作用?

答:在C语言中,关键字static有三个明显的作用:

  1. 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
  2. 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
  3. 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。

局部变量能否和全局变量重名?

答:能,局部会屏蔽全局。
局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。
对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。

Union和结构体之间的区别

答:结构体类似于一个包裹,结构体中的成员彼此是独立存在的,分布在内存的不同单元中,他们只是被打包成一个整体叫做结构体而已;共用体中的各个成员其实是一体的,彼此不独立,他们使用同一个内存单元。可以理解为:有时候是这个元素,有时候是那个元素。更准确的说法是同一个内存空间有多种解释方式。

什么是指针?

答:指针的实质就是个变量,它跟普通变量没有任何本质区别。指针完整的名字应该叫指针变量,简称为指针。指针的出现是为了实现CPU间接访问内存地址。

栈和堆的区别?

答:栈区别于堆,它是自主管理内存的;堆管理内存分配灵活,按需分配,也就是程序手动申请&释放:手工意思是需要写代码去申请malloc和释放free。各进程可以按需申请使用,使用完释放。大的进程放入到堆内存中,小的进程放入栈中,两种的特征决定了处理不同的进程。
1.申请方式不同。栈的空间由操作系统自己分配和释放,堆上的空间手动分配和释放。
2.申请效率不同。栈由系统自动分配,速度较快,但程序员是无法控制的。堆是由new分配的内存,一般速度较慢,而且容易产生内存碎片,不过用起来最方便。
3.申请大小不同。栈空间有限。在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在WINDOWS下,栈的大小是2M(也有的说是1M,总之是一个编译时就确定的常数),如果申请的空间超过栈的剩余空间时,将提示overflow。因此,能从栈获得的空间较小
堆是很大的自由存储区。堆是向高地址扩展的数据结构,是不连续的内存区域。这是由于系统是用链表来存储的空闲内存地址的,自然是不连续的,而链表的遍历方向是由低地址向高地址。堆的小受限于计算机系统中有效的虚拟内存。由此可见,堆获得的空间比较灵活,也比较大。

什么是内存泄漏?

答:在调用free归还(释放)这段内存之前,指向这段内存的指针p一定不能丢(也就是不能给p另外赋值)。因为p一旦丢失,这段malloc申请来的内存就永远的丢失了(内存泄漏),直到当前程序结束时操作系统才会回收这段内存。

单片机程序跑飞是什么意思?

答:"单片机程序跑飞"是指由于某些异常情况,使得单片机的程序执行流程脱离预设的正常路径,导致系统运行不正常。这种现象可能有多种表现,例如:单片机系统不停地重启,无法进入正常工作状态。

一个常见的原因是数组越界(数组溢出),即函数中定义的数组元素的个数小于程序中实际使用的数组元素的个数。另一个可能的原因是外部干扰,比如电磁干扰等,这可能导致程序计数器PC的值发生非预期的变化,从而使程序的流向指向不确定区域。

描述一下C语言从代码到可执行程序的过程

答:一个C语言程序,从代码到可执行程序的过程需要四个步骤:预处理,编译 ,汇编,链接。

1.预处理
预处理负责对源代码进行文本处理。主要处理代码中以字符#开头的命令。
2. 编译
编译期间也要经过多个步骤,由.i的文本文件生成.s的文本文件。此文件为以汇编语句完成的代码
3.汇编
经过汇编阶段把汇编语句转换为机器指令,由.s的文本文件生成.o的二进制文件。
4.链接
链接器将所有二进制的目标文件和系统组件组合成一个可执行文件(.exe)。 (需要注意的是,我们在编译器是针对源文件进行编译的并且每个源文件都只会编译一次,所以汇编结束后每个源文件都会生成一个.o文件,这里的目标文件就是这些.o文件。)

在这里插入图片描述

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

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

相关文章

Mac虚拟机CrossOver23破解版下载和许可证下载

CrossOver Mac Mac 和 Windows 系统之间的兼容工具。使 Mac 操作系统的用户可以运行 Windows 系统的应用,从办公软件、实用工具、游戏到设计软件, 您都可以在 Mac 程序和 Windows 程序之间随意切换。 系统要求 运行macOS的基于Intel或Apple Silicon 的…

springboot项目加载配置文件失败

问题 在使用springboot打成jar以后,需要文件加载一个redisson-cluster的配置文件。配置文件是在jar的同级目录。启动时却总是加载jar中的配置文件,而外部配置文件却不加载看下配置:spring:redis:redisson:# redis配置位置file: classpath:red…

lcx iptables rinetd 三个端口转发流量分析

lcx流量分析 环境搭建 本机 :192.168.0.52 win7 : 192.168.0.247 10.0.0.3 win10: 10.0.0.10 win7 Lcx.exe -listen 7777 4444win10 Lcx.exe -slave 10.0.0.3 7777 127.0.0.1 3389然后使用远程软件连接 连的是192.168.0.247的4444 端口 …

基于Pytorch框架深度学的垃圾分类智能识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 垃圾分类智能识别系统是一种基于深度学习技术的智能系统,用于对垃圾进行分类和识别。它使用Pytorch框架…

【电路笔记】-压敏电阻

压敏电阻 文章目录 压敏电阻1、概述2、交流波形瞬变3、抗静电能力4、特性曲线5、压敏电阻电容值6、金属氧化物压敏电阻7、压敏电阻应用8、总结 压敏电阻是一种无源两端固态半导体器件,用于为电气和电子电路提供保护。 1、概述 与提供过电流保护的保险丝或断路器不同…

Redis高效恢复策略:内存快照与AOF

第1章:Redis宕机恢复的重要性和挑战 大家好,我是小黑。今天咱们来聊聊Redis宕机后的恢复策略。想象一下,你的网站突然宕机了,所有的数据都飘了,这种情况下,快速恢复数据就显得尤为重要。Redis作为一个高性…

大厂算法指南:优选算法 ——双指针篇(下)

大厂算法指南:优选算法 ——双指针篇(上) 前言:双指针简介一、[611. 有效三角形的个数](https://leetcode.cn/problems/valid-triangle-number/)1.1 算法思路(排序 双指针)1.2 代码实现 二、[LCR 179. 查找…

[GPT]Andrej Karpathy微软Build大会GPT演讲(下)--该如何使用GPT助手

该如何使用GPT助手--将GPT助手模型应用于问题 现在我要换个方向,让我们看看如何最好地将 GPT 助手模型应用于您的问题。 现在我想在一个具体示例的场景里展示。让我们在这里使用一个具体示例。 假设你正在写一篇文章或一篇博客文章,你打算在最后写这句话。 加州的人口是阿拉…

佳明(Garmin) fēnix 7X 增加小睡检测功能

文章目录 (一)零星小睡(二)小睡检测(三)吐槽佳明(3.1)心率检测(3.2)光线感应器(3.3)手表重量(3.4)手表续航 &a…

保姆级 | XSS Platform环境搭建

0x00 前言 XSS Platform 平台主要是用作验证跨站脚本攻击。该平台可以部署在本地或服务器环境中。我们可以使用 XSS Platfrom 平台搭建、学习或验证各种类型的 XSS 漏洞。 0x01 环境说明 HECS(云耀云服务器)xss platformUbuntu 22.04Nginx 1.24.0MySQL 5.6.51Pure-Ftpd 1.0.49…

最新接口自动化测试面试题

前言 前面总结了一篇关于接口测试的常规面试题,现在接口自动化测试用的比较多,也是被很多公司看好。那么想做接口自动化测试需要具备哪些能力呢? 也就是面试的过程中,面试官会考哪些问题,知道你是不是真的做过接口自…

2021版吴恩达深度学习课程Deeplearning.ai 05序列模型 12.5

学习内容 05.序列模型 1.1 为什么用序列模型 1.序列模型常见的应用 1.2 注释 notation 1.*T_x(i)表示训练样本x(i)的序列长度,T_y(i)表示target(i)的序列长度2.训练集表示单词的方式*构建字典的方式*在训练集中查找出现频率最高的单词*网络搜集常用字典3.如果遇…

【C语言快速学习基础篇】之一基础类型、进制转换、数据位宽

文章目录 一、基础类型(根据系统不同占用字节数会有变化)1.1、有符号整形1.2、无符号整形1.3、字符型1.4、浮点型1.5、布尔型 二、进制转换2.1、二进制2.2、八进制2.3、十进制2.4、十六进制2.5、N进制2.6、进制转换关系对应表 三、数据位宽3.1、位3.2、字节3.3、字3.4、双字3.5…

【数据结构高阶】红黑树

目录 一、红黑树的概念 二、红黑树的性质 2.1 红黑树与AVL树的比较 三、红黑树的实现 3.1 红黑树节点的定义 3.2 数据的插入 3.2.1 红黑树的调整思路 3.2.1.1 cur为红,f为红,g为黑,u存在且为红 3.2.1.2 cur为红,f为红&am…

IT新闻资讯系统,使用mysql作为后台数据库,此系统具有显示数据库中的所有信息和删除两大功能。

表的准备: -- MySQL Administrator dump 1.4 -- -- ------------------------------------------------------ -- Server version 5.1.40-community /*!40101 SET OLD_CHARACTER_SET_CLIENTCHARACTER_SET_CLIENT */; /*!40101 SET OLD_CHARACTER_SET_RESULTSCHAR…

55.手写实现grpc连接池以及gin和grpc交互

文章目录 一、简介前置说明 二、敏感词过滤服务1、定义sensitive.proto文件2、protoc生成pb.go文件3、sensitive服务端实现 三、关键词匹配服务1、编写keywords.proto文件2、生成pb.go文件3、keywords服务端实现 四、gin web 路由服务1、新建grpcpool服务作为gin web服务2、根据…

GEE影像升尺度(10m->250m)

GEE影像升尺度(10m->250m) 代码 var ext /* color: #d63000 *//* shown: false *//* displayProperties: [{"type": "rectangle"}] */ee.Geometry.Polygon([[[108.74625980473367, 28.562445155322063],[108.74625980473367, …

Day56力扣打卡

打卡记录 数对统计&#xff08;DP状态压缩&#xff09; 参考文献 #include <bits/stdc.h>using namespace std;void solve(){int n;cin >> n;map<int, int> mapp;vector<int> a(n);for (auto& x : a){cin >> x;mapp[x] ;}vector<array&…

使用WebyogSQLyog使用数据库

数据库 实现数据持久化到本地&#xff1a; 使用完整的管理系统统一管理&#xff0c; 数据库&#xff08;DateBase&#xff09;&#xff1a; 为了方便数据存储和管理&#xff08;增删改查&#xff09;&#xff0c;将数据按照特定的规则存储起来 安装WebyogSQLyog -- 创建数…

101基于matlab的极限学习机ELM算法进行遥感图像分类

基于matlab的极限学习机ELM算法进行遥感图像分类&#xff0c;对所获取的遥感图片进行初步分类和最终分类。数据可更换自己的&#xff0c;程序已调通&#xff0c;可直接运行。