20_02_20笔记——《你必须知道的495个C语言问题》

FPGA+滨淞CCD实战:手把手教你搭建S7031/S10142成像电路(附避坑指南) 本文详细介绍了使用FPGA驱动滨淞CCD传感器(S7031/S10142)构建高精度成像系统的完整实战流程。内容涵盖核心器件选型、系统架构规划、电路板(焦面板与接口板)设计要点、FPGA Verilog逻辑实现,并提供了从电源管理、信号调理到数据采集的详细避坑指南,帮助读者从零搭建稳定可靠的成像电路。 阅读详情

**《你必须知道的495个C语言问题》笔记
第12章 标准输入输出库

12.1、12.2
getchar()一般情况下返回的是终端输入的字符,但是也可能是负值,因为EOF被定义为-1,所以这样定义是错误的:char c;c = getchar();应该这样定义:int c;c = getchar();
getchar()函数遇到回车或者末尾为EOF(Ctrl+Z)时会结束。

12.4
原型为char *fgets(char *str, int n, FILE *stream);
从流 stream 读取一行,并把它存储在str所指向的字符串内。当读取(n-1)个字符或者换行符,或者到达文件末尾时,它会停止。

12.5 如何在printf的格式串中输出一个’%‘字符?
a:重复两个百分号:%%。因为%本来就是一种转义字符。

12.8 用printf输出long int型必须在格式串中使用l修饰符,r如%ld。

12.9 printf的%f说明符既可以输出float型又可以输出double型,float型会被提升为double型。但是scanf接受指针,通过指针向float存和向double存大小不一样,scanf区别%f和%lf。

12.11 用printf实现可变域宽度,除了使用%8d这种,还可以使用printf(“%*d”,width,x)。星号表示参数列表的一个int值用来表示域的宽度,宽度在输出的值之前。

12.16 为什么这样不行:
short int s;
scanf(“%d”,&s);
a:在转换%d的时候,scanf需要int型指针。要转换成short int应该使用%hd。

12.19 使用“%d\n”调用scanf从键盘读取数字时,\n在scanf格式串中不表示等待换行符,而是读取并放弃连续的空白字符。但是%d也会自动放弃空白,因此不需要加上\n。

12.20 使用scanf和%d读取数字,然后再用gets()读取字符串时。如果先用scanf输入了然后换行,此时的换行符会继续在输出流中,然后被gets读取。

12.21 使用类似于if(scanf(“%d”,&n)==1)这样的语句,scanf转换数字的时候,它遇到的任何非数字字符都会终止转换并被保留在输入流中。

12.24 int sprintf(char *string, char *format [,argument,…]);
原型返回的是int型,作用是把格式化的数据写入某个字符串缓冲区。

12.25 gets输入太长会导致缓冲区溢出,所以fgets较好,且fgets保留’\n‘。

12.27 ftell和fseek用long int型表示文件内的偏移量,有限制范围。而ffgetpos和fsetpos函数使用了一个特殊的类型定义fpos_t来表示偏移量,且大小任意。

12.30 调用文件的函数时,
类似FILE *fp=fopen(filename,’r‘);后面的mode参数必须是字符串,用“r”。

基于 Simulink 的**单相全桥 LLC 谐振双向 DC-DC 变换器(带软开关特性)**实战教程 原边(Primary):全桥逆变电路(4个 MOSFET/IGBT),将直流斩波为高频方波。变压器:提供电气隔离和电压变比。副边(Secondary):全波或全桥整流电路(同步整流或二极管)。 阅读详情

相关推荐

【PyTorch版本兼容性指南】如何在不同版本中正确使用torch.nn.attention

本文详细解析了PyTorch版本兼容性问题,特别是torch.nn.attention模块在不同版本中的使用差异。针对常见的ModuleNotFoundError错误,提供了三种实用解决方案:升级PyTorch版本、使用自定义实现和源码移植方案,并分享了最佳实践建议,帮助开发者有效避免兼容性问题。

weixin_29084231的博客 472

20_02_14笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第6章 数组和指针 6.1 我在一个源文件中定义了char a[6],在另一个源文件中声明了extern char *a。为什么不行? a:在一个源文件定义了字符串,而在另一个文件中定义了指向字符的指针。extern char *a的声明不能和真正的定义匹配。应使用extern char a[]。 6.2 在C语言中“指针和数组等价”到底是什么意思? a:大...

please_fix_的博客 248

OpenEuler22.04 快速部署Docker:华为云镜像源配置指南

本文详细介绍了在OpenEuler 22.04系统上快速部署Docker的完整流程。针对系统默认源版本老旧的问题,重点讲解了如何配置华为云镜像源以加速安装,并涵盖Docker引擎、Docker Compose的安装、服务启动验证、权限配置、镜像加速等核心步骤与常见问题排查,帮助用户高效搭建稳定的容器化开发环境。

http9protocoller的博客 174

20_02_16笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第7章 内存分配 第8章 字符和字符串 7.23 malloc有bug导致程序总是崩溃? a:malloc的内部数据结构哦很容易被破坏。标准C之前的常见情况:1.向分配的空间写入比分配的空间更多的数据;2.使用已经释放了内存的指针;3.分配大小为0的对象;4.重分配空指针;5.释放未从malloc获得的指针、空指针或者已经释放的指针。 7.24 为什么在调用...

please_fix_的博客 253

echarts 生成中国陕西省份(或其他省份)的地图,大屏使用

效果图: 一、首先第一步需要下载echarts和获取到陕西身份的地图信息。 1.下载echarts链接(官网): Apache ECharts 2.生成指定省份的地图数据信息,数据可以在阿里云获取。 DataV.GeoAtlas地理小工具系列 如图,点击左圈需要的省份,这里我选择的是陕西省,然后点击右圈复制下载链接,得到一个json格式的数据,可以在json转换网站转成js格式。 Json在线解析格式化-Json在线校验Json格式化压缩-Jsons在线工具 转成js格.

PrimaryColor 3889

基于大模型的JMeter日志智能分析服务化实践

在软件性能测试领域,日志分析是定位系统瓶颈、评估稳定性的关键环节。传统基于规则或正则表达式的分析方法,在面对格式多变、上下文关联复杂的海量日志时,往往效率低下且难以深入。大语言模型(LLM)凭借其强大的自然语言理解与推理能力,为这一挑战提供了新的解决方案。其技术价值在于能够自动化地从非结构化文本中提取语义信息、关联分散的上下文,并生成可操作的根因分析与优化建议,从而将工程师从繁琐的日志筛查中解放出来,显著提升问题诊断的深度与效率。这一技术可广泛应用于自动化测试报告生成、实时监控预警、脚本调试辅助等工程实践场

weixin_28839549的博客 338

20_02_19笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第11章 ANSI/ISO C 11.1 什么是“ANSI C”? a: 1978年,《C程序设计语言》的第一版出版,书中介绍的C语言标准也被称作“K&R C” 1989年,美国国家标准协会(ANSI)创立了一套C的标准,即ANSI C,或C89。1990年,将C89稍微改动,变成了ISO C或叫做C90。 2000年,ANSI 发布新的C标准C99...

please_fix_的博客 289

推荐系统:NDCG评价指标及其Python实现方法

除了推荐任务,在二分类任务中,也可以计算该指标,代码如下: # ndcg def get_dcg(y_pred, y_true, k): #注意y_pred与y_true必须是一一对应的,并且y_pred越大越接近label=1(用相关性的说法就是,与label=1越相关) df = pd.DataFrame({"y_pred":y_pred, "y_true":y_true}) ...

lanyuelvyun的博客 8242

20_02_15笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第67章 内存分配 7.1 为什么以下代码不行? char *answer; printf(“Type somrthing:\n”); gets(answer); printf(“You typed “%s”\n”, answer); a:指着answer未初始化,他可能指向任何位置或者为空指针。 7.2 以下代码: char *s1 = “hello,”;...

please_fix_的博客 245

安卓模拟器绕过检测全解析:雷电、MuMu、蓝叠、逍遥、夜神与WSA完整指南

随着手机游戏和应用的普及,越来越多的用户选择在PC上通过模拟器来运行安卓应用。然而,许多应用和游戏为了防止作弊或出于安全考虑,会检测是否运行在模拟器环境中。本文将详细介绍各大主流模拟器的检测绕过方法,帮助用户在电脑上流畅体验各类安卓应用。1. 获取模拟器系统镜像2. 使用ROM厨房工具修改系统文件3. 替换模拟器的系统镜像雷电模拟器:适合游戏,推荐使用MAGISK + EdXposed方案MuMu模拟器:适合中度游戏,推荐太极框架蓝叠模拟器:适合国际应用,推荐MAGISK方案逍遥模拟器。

专注技术分享 3万+

ExpressLRS(ELRS)接收机技术全景:从历史演进、技术底层到产业生态全解析——上

ExpressLRS(ELRS)是一种由全球开源社区驱动的双向射频遥控链路协议栈,其接收机作为核心终端,承担信号接收解调、遥控指令解析、飞控数据交互与遥测回传等关键功能。自2018年问世以来,ELRS凭借极致性能、低成本、开放生态和强兼容性,从航模DIY方案发展为消费级无人机领域的事实标准,并逐步渗透工业级场景。 ELRS接收机采用模块化分层架构,支持2.4GHz和900MHz双频段,通过LoRa、FLRC、FSK多调制模式实现低延迟与远距离平衡。其核心技术包括自适应跳频抗干扰、TDD双向链路和极简数据包。

bother3000的博客 303

20_02_21笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第12章 标准输入输出库 第13章 库函数 12.35 C语言中可通过freopen函数实现文件的重定向,即把一个打开的文件,重定向到另外一个文件上。 freopen是头文件<stdio.h>中的一个函数,用于重定向输入输出文件。该函数可以在不改变代码原貌的情况下改变输入输出环境,但使用时应当保证文件是可靠的。 函数原型 FILE *freope...

please_fix_的博客 166

LVGL hal indev(porting evdev)

LVGL中对输入设备的管理是单例实现的,而在Linux的输入设备是多个的,所以需要对其进行改造成多例实现。

Bigan(安)的博客 3346

20_02_10笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 2.12 怎样从/向数据文件读/写结构? 最简单: fwrite(&somestruct,sizeof somestruct,1,fp); 有fwrite原型: fwrite((char *)somestruct,sizeof somestruct,1,fp); 可移植性: 写一对函数,按域读写。 2.13 编辑器在内存中留下了空洞?怎么控制对齐方式...

please_fix_的博客 159

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

20_02_18笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第10章 C预处理器 10.12 #if是条件编译,后不能加变量,它在程序编译前执行。 #if 表达式 #endif 意思是如果if后面的表达式不为0的话就编译#if和#endif之间的语句,否则就不编译。 10.13 sizeof操作符可以用在#if预处理指令中吗? a:因为预处理是在编译过程之前进行,此时还没有对类型等数据进行分析。 10.20 宏定义中...

please_fix_的博客 147

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

20_02_17笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第9章 布尔表达式和变量 第10章 C预处理器 9.1 在 C 语言标准(C89)没有定义布尔类型,所以 C 语言判断真假时以 0 为假,非 0 为真。现在普遍使用C99,所以此章节不具有参考价值。 10.1~10.5 #define 10.6~10.11 #include 10.12~10.19 #if 10.20 ~10.25 宏替换 10.26~10....

please_fix_的博客 215

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

20_02_13笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第5章 空指针 5.1 空指针是什么? a:空指针不会指向任何地方,不是任何对象或函数的指针。所以它不同于未初始化的指针。 5.2 怎样获得一个空指针? a:在初始化、赋值或比较的时候,若一边是变量或指针类型的表达式,编译器可以确定另一边的常数0为空指针并生成正确的空指针。 5.3 用缩写的指针比较“if(p)”检查空指针是否有效?如果空指针的内部表达不是...

please_fix_的博客 160

20_02_12笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 4.3 *p++自增p还是p所指向的变量? a:++优先级高于(星号),p++和(p++)等价,他自增p并返回p自增前所指向的值。 4.4 C语言中的指针算术总是自动地采纳它所指向的对象的大小,所以访问的时候不需要使用+sizeof(类型)的方法。 4.5 我有一个char*型指针碰巧指向一些int型变量,我想跳过他们,为什么((int *)p)++;这样的...

please_fix_的博客 164

20_02_23笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第15章 可变参数列表 15.1 为什么调用printf之前必须要包含<stdio.h>? a:调用可变参数前,它的原型说明必须在作用域内,编译器由此知道要用可变参数调用机制。在原型说明中用省略号“…”来表示可变参数。 15.2 为什么%f可以在printf参数中同时表示float和double?难道它们不是不同类型? a:可变参数的可变部分使用...

please_fix_的博客 220

20_02_11笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 3.1 这样的代码为什么不行?a[i]==i++。 i++会改变i的值,i在同一表达式的其他地方被引用,无法判断该引用是新值还是旧值。 3.8 为什么表达式printf("%d %d",f1(),f2());先调用了f2? 逗号分隔得函数参数不是逗号操作符,函数调用的参数的求值顺序是不确定的。 3.13 ++i和i++的区别? 简单说:++i在i存储的值上增...

please_fix_的博客 159

20_02_22笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第14章 浮点运算 14.1 大多数电脑都是用二进制来表示浮点数和整数。十进制数0.1用二进制表示起来是一个循环小数0.0001100110011…大多数十进制小数用二进制表示的并不完全准确。 14.5 比较两个浮点数最好的方法就是要利用一个与浮点数的量相关的精确阈值(如0.00001)。 试了一下,现在的c语言中,不能直接使用epsilon。 14.6 直...

please_fix_的博客 151

《你必须知道的495个C语言问题》知识笔记及补充

1. extern在函数声明中是什么意思? 它可以用作一种格式上的提示表明函数的定义可能在另一个源文件中,但在 extern int f(); 和 int f(); 之间并没有实质的区别。 补充:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。也就是说extern有两个作用: ...

GarfieldEr007的专栏 908

《你必须知道的495个C语言问题》笔记--库函数

怎样把数字转为字符串(与atoi相反)?有itoa函数吗? 用sprintf就可以了: sprintf(string, "%d", number);同理,也可以同sprintf把long型或浮点型转换成字符串(使用%ld或%f),也就是说,可以把sprintf看成是atol或者atof的 反函数。 怎样在日期上加n天?怎样取得两个日期的时间间隔? 第一个问题,mktime接受没有

TODD911的专栏 2107

《你必须知道的495个C语言问题》笔记

1.10 对于没有初始化的变量的初始值可以作怎样的假定?如果一个全局变量初始值为 “零”, 它可否作为空指针或浮点零? 答: 具有 “静态” 生存期的未初始化变量 (即, 在函数外声明的变量和有静态存储类型的变量) 可以确保初始值为零, 就像程序员键入了 “=0” 一样。 因此, 这些变量如果是指针会被初始化为正确的空指针, 如果是浮点数会被初始化为 0.0 (或正确的类型, 参见第 5 章)...

weixin_34062469的博客 199

《你必须知道的495个C语言问题》读书笔记之第15-20章:浮点数、风格、杂项

一、可变参数列表 1. Q:为什么调用printf前必须要包含<stdio.h>? A:为了把printf的正确原型说明引入作用域。例如,如果可变参数的调用比固定参数的调用效率低,编译器就可能这样做。所以在调用可变参数的函数前,它的原型说明必须在作用域内,编译器由此知道要用可变参数调用机制。 2. Q:怎样写一个接受可变参数的函数? A:用&lt...

114

20_02_25笔记

《你必须知道的495个C语言问题》笔记 第17章 风格 17.4 一个很实用的小技巧,if语句判断时,用if(0x)而不是if(x0)这样可以避免将等号写成赋值号。因为if(x=0)这样的语句编译器并不会报错。 17.5 printf函数的原型为: int printf(const char *format, …);函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。 ...

please_fix_的博客 147
上一篇: 20_02_19笔记——《你必须知道的495个C语言问题》
下一篇: 20_02_21笔记——《你必须知道的495个C语言问题》
please_say_d
博客等级 码龄7年 13粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值