尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
c语言面试题常见易错,易混淆,比较难区分汇总
常见易错易混淆比较难区分的关键点1.关键字共有32个如下char、double、enum、float、int、long、short、signed、struct、union、unsigned、void、for、do、while、break、continue、if、else、goto、switch、case、default、return、auto、extern、register、static、const、sizeof不是函数特别注意、volatile易考关键字static、const、volatile、sizeof、extern2.C语言程序的一般结构有那 些顺序分支循环3.简单列举几种常用的循环结构和分支结构。循环For,while do,if goto。分支if else, switch case(注意default 的使用和break 的添加)。4.while和do while有何区别前者先判断再执行后者先执行再判断后者比前者多执行一次。5.continue和break有何需别前者结束本次循环继续下次循环后者直接推出循环。6.register有何作用?声明一个变量常驻寄存器以达到提高程序运行效率的目的在嵌入式开发中尤其常用但它是一个建议性的声明编译器会根据程序情况决定是否申请成功。7.static有何作用两方面1限定存储域2限定作用域。8.volatile关键字有什么用途声明为一个异变的变量一般的变量会暂存在处理器的缓存区中当内存中变量发生改变时处理器可能无法及时更新其变量的值导致灾难在嵌入式开发中尤其重要也可达到防止编译器优化的目的。9.指针函数和函数指针有和区别概念不同前者是一个函数返回值为指针类型后者为一个指针指向一个函数入口地址。10.简述0,‘0’,“0”,’\0’的区别。分别为数值0字符0ascii码数值为48字符串0占两个字节有‘\0’作为结束符字符串结束标志其数值等于0是绝对的0但意义不同11.使用gets时应注意哪些事项防止越界gets不检查目的地址的空间大小。12.简述堆和栈的区别前者为程序动态分配创建和销毁都需要手动完成使用完一定要销毁防止内存泄露后者为系统自动分配在函数返回时自动销毁所以不能在函数中返回变量。13.函数传参有哪些方法各有什么特色值传递和地址传递前者在传递时函数形参接受实参的拷贝所以原形参不会被改变但是大数据的拷贝会降低效率后者传递变量的地址不需拷贝但是会改变参数的值。14.全局变量和局部变量有何区别前者在静态区作用域是整个程序后者在栈区作用域仅限于函数内部。15.局部变量能否和全局变量重名可以局部变量会屏蔽全局变量。16.静态全局变量和普通全局变量有何区别存储域方面都相同都在静态区作用域方面不同前者是本文件后者是全局可见。17.静态局部变量和普通局部变量有何区别存储域相同都在静态去作用域相同都在函数内部但是声明周期不同前者声明周期为整个程序的声明周期知道程序推出自动消亡后者声明周期为一次函数调用函数返回即销毁。18.地址对齐方式有哪几种字节对齐半字对齐字对齐19.结构体对齐大小的计算struct a{char a;int b;short c;}Sizeof(a) ?结构体a的大小是4*312个字节而不是1247个字节这里主要考察内存对齐地址对齐的特点应为结构体中最大数据宽度是整型4字节所以按字对齐。关于内存对齐的题目在我博客中我会详细说明的。21.结构体和联合体的区别结构体struct各成员各自拥有自己的内存各自使用互不干涉同时存在的遵循内存对齐原则。一个struct变量的总长度等于所有成员对齐的长度之和。联合体union各成员共用一块内存空间并且同时只有一个成员可以得到这块内存的使用权(对该内存的读写)各变量共用一个内存首地址。因而联合体比结构体更节约内存。一个union变量的总长度至少能容纳最大的成员变量而且要满足是所有成员变量类型大小的整数倍。不允许对联合体变量名U2直接赋值或其他操作。22.宏函数与内联函数和普通函数的执行效率的比宏函数效率高因为是编译器在预处理阶段的替换23.C语言中注释有哪些方法/**/和 #if 0 #endif 。后者是预处理命令可以方便的对代码区进行选择编译。24.解释一下语句的含义const int a;int const a;const int *a;int * const a;int const * a const;前两个的作用是一样a是一个常整型数。第三个意味着a是一个指向常整型数的指针也就是整型数是不可修改的但指针可以。第四个意思a是一个指向整型数的常指针也就是说指针指向的整型数是可以修改的但指针是不可修改的。最后一个意味着a是一个指向常整型数的常指针也就是说指针指向的整型数是不可修改的同时指针也是不可修改的。也许你可能会问即使不用关键字const也还是能很容易写出功能正确的程序那么我为什么还要如此看重关键字const呢理由如下1). 关键字const的作用是为给读你代码的人传达非常有用的信息实际上声明一个参数为常量是为了告诉了用户这个参数的应用目的。2). 通过给优化器一些附加的信息使用关键字const也许能产生更紧凑的代码。3). 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数防止其被无意的代码修改。简而言之这样可以减少bug的出现。25.头文件中的 ifndef/define/endif 干什么用答防止该头文件被重复引用。26.#include file.h 和 #include “file.h” 有什么区别对于#include file.h 编译器从标准库路径开始搜索 file.h对于#include “file.h” 编译器从用户的工作路径开始搜索 file.h
RELATED

相关推荐

物联网设备安全芯片SE050与PIC18F86J10集成方案

物联网设备安全芯片SE050与PIC18F86J10集成方案

1. 为什么物联网设备需要硬件级安全芯片?在物联网设备爆炸式增长的今天,安全性已成为制约行业发展的关键瓶颈。去年某知名智能家居品牌曝出的远程控制漏洞事件,直接导致超过200万台设备被恶意操控。传统基于软件的安全方案在资源受限的嵌入式…

📅 2026/8/8 3:04:38
M9A技术深度解析:基于MaaFramework的《重返未来:1999》自动化引擎

M9A技术深度解析:基于MaaFramework的《重返未来:1999》自动化引擎

M9A技术深度解析:基于MaaFramework的《重返未来:1999》自动化引擎 【免费下载链接】M9A 重返未来:1999 小助手 | Assistant For Reverse: 1999 项目地址: https://gitcode.com/gh_mirrors/m9/M9A M9A是一款基于MaaFramework图像识别框…

📅 2026/7/31 2:31:11
直流、步进、伺服电机选型指南:从原理到实战,告别选型难题

直流、步进、伺服电机选型指南:从原理到实战,告别选型难题

电机到底怎么选,一口气讲清楚,再分不清去打螺丝吧 你是不是也遇到过这样的场景?老板让你做个自动化小装置,或者自己DIY一个机器人、3D打印机,第一步就卡在了选电机上。淘宝一搜“电机”,直流电机、步进电机、伺服电机、减速电机、舵机……五花八门,参数更是让人眼花缭乱…

📅 2026/8/8 10:16:04
MORE NEWS

更多资讯

📰

Voyager 資料夾管理指南:為 Gemini 與 AI Studio 的 AI 對話打造真正的「檔案系統」

AI 应用前端 【免费下载链接】voyager Enhancement suite for Gemini, AI Studio, Claude & ChatGPT — plus a prompt manager for any websites, DeepSeek Harness included. / 面向 Gemini、AI Studio、Claude 与 ChatGPT 的增强套件;其中的提示词管理器可用…

📰

gatsby-source-graphql 插件全解析:将任意第三方 GraphQL API 缝合进 Gatsby 数据层

前端静态站点Web框架 【免费下载链接】gatsby React-based framework with performance, scalability, and security built in. 项目地址: https://gitcode.com/gh_mirrors/ga/gatsby 点击查看 免费下载 本篇技术指南以 gatsby-source-graphql 插件的 CHANGELOG 版…

📰

Lightweight Charts v3 到 v4 迁移指南:破坏性变更逐项分析与实战改造方案

Lightweight Charts v3 到 v4 迁移指南:破坏性变更逐项分析与实战改造方案 【免费下载链接】lightweight-charts Performant financial charts built with HTML5 canvas 项目地址: https://gitcode.com/gh_mirrors/li/lightweight-charts 本指南以 Lightweig…

📰

FoundationDB 存储基准测试上 RAM Disk:mako_storage_bench.sh 在 okteto 开发 Pod 上的 tmpfs 实践指南

分布式数据库KV存储数据库后端 【免费下载链接】foundationdb FoundationDB - the open source, distributed, transactional key-value store 项目地址: https://gitcode.com/gh_mirrors/fo/foundationdb 点击查看 免费下载 mako_storage_bench.sh 是 FoundationD…

📰

Trigger.dev SDK 公共包修改规范:Changesets 发布流程、版本策略与 @trigger.dev/core 子路径导入指南

AI Agent后端任务调度开发工具可观测性AI 应用 【免费下载链接】trigger.dev Trigger.dev – build and deploy durable AI agents and workflows 项目地址: https://gitcode.com/gh_mirrors/tr/trigger.dev 点击查看 免费下载 本篇指南围绕仓库内的 .claude/rules…

📰

swagger-codegen 生成的 Android Volley 客户端中 Pet 模型完整解析

开发工具代码生成API设计 【免费下载链接】swagger-codegen swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. 项目地址: http…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬