嵌入式c学习四

news2025/3/12 8:34:37

c语言的输入输出:ANSI组织发布的标准c库,使用函数需要包含对应头文件,使用输入输出函数时需要包含stdio.h (stdio -> standard input output)标准输入输出

格式化输出:int printf(const char * restrict format, ...),printf函数返回值是被输出的字符的数量,不包含'\0',遇到\n输出结束,当发生错误时返回一个负整数,c语言中字符串用双引号( “  ” )表示

%转换说明符

转换说明:

d:以有符号的10进制输出、f:浮点型输出

o,u,x/X:把无符号整型转换为8,10,16进制输出

c:以字符型输出

s:以字符串型输出

p:把存储单元的地址以16进制输出

%:可以输出% 

标志说明

#:可以吧对应进制的前导符进行输出,#o输出八进制前导符0,#x输出16进制前导符0x

~:可以用于数据对齐,-表示左对齐,默认为右对齐

转换精度:.3指定输出位数,表示输出3位小数

长度修饰符

hh:指把整型转换为字符型输出,只针对输出内容,数据本身无影响

h(half-一半):把整型转换为短整型

大端存储与小端存储:小端-数据低字节存储在内存的低地址;大端-数据高字节存储在内存的低地址

缓冲区:全缓冲、无缓冲、行缓冲

全缓冲:缓冲区被填满,立即把数据冲刷到文件,或者在关闭文件,读取文件及修改缓冲区类型也会立即把数据冲刷到文件

无缓冲:指没有缓冲区,直接输出

行缓冲:当换冲区被填满(一般是4kB及4096字节)或者缓冲区遇到 ‘\n’,或者读取文件内容,修改缓冲区类型,会立即把数据冲刷到文件中,printf函数采用行缓冲

fflush()函数:用户可以调用库函数刷新输出缓冲区(主义不能刷新输入缓冲区,一般编译器不支持)——fflush(stdout); 可以刷新输出缓冲区

格式化输入:scanf(scan format)翻译为格式化扫描

scanf函数的第一个参数是字符串可以包含转换说明符%

scanf("%[0-9]s",str);  只接收0-9之间字符,输入其他数据则停止输入

scanf("%[^0-9]s",str);  不接收0-9之间字符,输入0-9字符停止输入

scanf("%[^#]s",str);  输入#表示停止输入数据

c语言的运算符:+、-、*、/、%、++、--;++,--属于单目运算符,其他5种属于双目运算符

/:除法运算符,当两端操作数都是整数时,输出也为整数且会直接舍弃小数保留整数(不会4舍5入):5/3=1,若有一个数为浮点数则输出为浮点数,默认6位数精度(小数点后保留6为小鼠),

%:取余运算符,两个操作数必须为整型,5%3=2

c语言中单目运算符和三目运算符,赋值运算符都是遵循右结合性,其它运算符遵循左结合性

++:a++,a先参与表达式运算,运算结束后a自增1;++a,a先自增1,在参与表达式运算

sizeof():此函数在c语言中是一个操作符,用于计算数据类型大小,结果以字节为单位,其括号里的表达式不会参与计算,当sizeof表达式中设计多个数据类型大小时,会进行隐世转换数据类型

自动类型转换:编译器默认转换,可能会影响数据精度,转换按照数据长度增加的方向进行,所有的浮点型都是以双精度运算的,运算中只有float类型时也需要先转换为double类型在运算,char与short参与运算时必须先转换成int类型

强制类型转换:(需要转换的数据类型) 变量——(int)a; 将变量a转换为整型

位操作运算符:~ & ^ | << >>  (对二进制而言)

~:按位取反,对于二进制而言,0-1;1-0

&:按位与,有0为0,两个bit同时为1才为1

|:按位或,两个bit中有1,结果为1

^:按位异或,两个bit,相同为0,不同为1

<<:左移运算符,高位舍弃,低位补零——1111 0000 <<3——1110 0000

>>:右移运算符

a=0x0000 ?000

设置(置1)a的bit 3 = 1<<3 -> 0x 0000 1000 ->aI1 ->0000 1000——a | =(1<<x)->设置a的bit x;

清除(请0)a的bit 3 = 1<<3 -> 0x 0000 1000 ->~(1<<3) -> 0x1111 0111 --> a & ~(1<<3) --> 0x0000 0000,——>a &= ~(1<<x)

关系运算符:>      <       >=        <=        ==        !=

>      <       >=        <=  这四种关系运算符优先级相同且高于 ==        !=,此两者优先级相同

逻辑运算符:&&   ||       !

&&:逻辑与,当两个表达式为真,结果为真(当第一个表达式为假时结果为假,且后续表达式不在参与运算)

||:逻辑或,两个表达式有一个为真,结果为真,当第一个表达式为真后续表达式不在运算

!:逻辑非,单目运算符,真变为假,假变为真

条件运算符:?(唯一一个三目运算符)m ? x:y  m表达式为真返回x,为假返回y

逗号运算符:(优先级最低) x,y,n;  取最后一个表达式n的结果

优先级:单目运算符 > 算数运算符 > 移位运算符 > 关系运算符 > 相等

        

        

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

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

相关文章

爱可以传递,幸福可以具象化

遇到什么&#xff1a;晚上上课学生吵吵吵&#xff0c;把学生手机全部收了&#xff0c;放讲台上。 感受到的情绪&#xff1a;很烦躁。 反思&#xff1a;收手机也不是长久之计&#xff0c;可是物理有什么翻转课堂呢&#xff1f; 明天的待办事项&#xff1a;早上高数选修课&#x…

力扣-数组-367 有效的完全平方数

思路和时间复杂度 思路&#xff1a;利用二分&#xff0c;确定区间是左闭右闭&#xff0c;然后根据大小进行二分时间复杂度&#xff1a; 代码 class Solution { public:bool isPerfectSquare(int num) {bool flag false;if(num 0 || num 1) return true;long long …

Java关键字与标识符

Java关键字是预定义的保留字&#xff0c;用于定义程序结构和语义&#xff0c;如if、for、class等&#xff0c;不能用作标识符。JDK 8有50个关键字&#xff0c;JDK 11引入var用于局部变量类型推断。标识符用于命名变量、类等&#xff0c;由字母、数字、_、$组成&#xff0c;不能…

【神经网络】python实现神经网络(二)——正向推理的模拟演练

一.神经网络假设 在开始讲解之前,首先我们假设有这样一套神经网络,一共有三层: 其中,关于神经网络的权重、偏置的符号定义如下(如果不知道什么是权重和偏置,可以参考我之前写过的一篇文章:【机器学习】机器学习是什么意思): 以下文章将沿用以上这个设…

DeepSeek模型本地化部署方案及Python实现

DeepSeek实在是太火了&#xff0c;虽然经过扩容和调整&#xff0c;但反应依旧不稳定&#xff0c;甚至小圆圈转半天最后却提示“服务器繁忙&#xff0c;请稍后再试。” 故此&#xff0c;本文通过讲解在本地部署 DeepSeek并配合python代码实现&#xff0c;让你零成本搭建自己的AI…

Houdini SOP层 Scatter节点

SOP 代表 Surface Operator&#xff08;几何体操作节点&#xff09;&#xff0c;所有几何体的建模、变形、分布等操作都在此层级完成。 Scatter节点的作用就是 以不同的密度在模型表面撒点 Scatter 节点属于 SOP&#xff08;几何体&#xff09;层级&#xff1a; 进入 Geometr…

【网络安全工程】任务12:网络安全设备

目录 一、防火墙​ 1、作用​ 2、配置方式​ 3、存在的漏洞​ 二、入侵检测系统&#xff08;IDS&#xff09;和入侵防御系统&#xff08;IPS&#xff09;​ 1、作用​ 2、配置方式​ 3、存在的漏洞​ 三、防病毒网关​ ​1、作用​ 2、配置方式​ 3、存在的漏洞​ …

Linux 进程控制:创建、终止、等待与程序替换全解析

亲爱的读者朋友们&#x1f603;&#xff0c;此文开启知识盛宴与思想碰撞&#x1f389;。 快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 目录 1.进程创建 1-1 fork函数初识​ 1-2 fork函数返回值​ 1-3…

SwiftUI 让视图自适应高度的 6 种方法(四)

概览 在 SwiftUI 的世界里&#xff0c;我们无数次都梦想着视图可以自动根据布局上下文“因势而变”‌。大多数情况下&#xff0c;SwiftUI 会将每个视图尺寸处理的井井有条&#xff0c;不过在某些时候我们还是得亲力亲为。 如上图所示&#xff0c;无论顶部 TabView 容器里子视图…

1035.不相交的线

1035.不相交的线 力扣题目链接(opens new window) 在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在&#xff0c;可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线&#xff0c;这些直线需要同时满足&#xff1a; nums1[i] nums2[j]且绘制的直线…

2001-2023年上市公司数字化转型年报词频统计(年报词频统计和MDA词频统计两种方式)(吴非、赵宸宇、甄红线300+关键词三种方法)

2001-2023年上市公司数字化转型年报词频统计&#xff08;年报词频统计和MD&A词频统计两种方式&#xff09;&#xff08;吴非、赵宸宇、甄红线300关键词三种方法&#xff09; 1、时间&#xff1a;2001-2023年 2、来源&#xff1a;上市公司年报 3、参考文献&#xff1a; …

IO多路复用实现并发服务器

一.select函数 select 的调用注意事项 在使用 select 函数时&#xff0c;需要注意以下几个关键点&#xff1a; 1. 参数的修改与拷贝 readfds 等参数是结果参数 &#xff1a; select 函数会直接修改传入的 fd_set&#xff08;如 readfds、writefds 和 exceptfds&#xf…

C++20 模块:告别头文件,迎接现代化的模块系统

文章目录 引言一、C20模块简介1.1 传统头文件的局限性1.2 模块的出现 二、模块的基本概念2.1 模块声明2.2 模块接口单元2.3 模块实现单元 三、模块的优势3.1 编译时间大幅减少3.2 更好的依赖管理3.3 命名空间隔离 四、如何使用C20模块4.1 编译器支持4.2 示例项目4.3 编译和运行…

有必要使用 Oracle 向量数据库吗?

向量数据库最主要的特点是让传统的只能基于具体值/关键字的数据检索&#xff0c;进化到了可以直接基于语义的数据检索。这在AI时代至关重要&#xff01; 回到标题问题&#xff1a;是否有必要使用 Oracle 向量数据库&#xff1f; 这实际还要取决于你的具体应用需求。 客观来讲…

小肥柴慢慢手写数据结构(C篇)(4-3 关于栈和队列的讨论)

小肥柴慢慢学习数据结构笔记&#xff08;C篇&#xff09;&#xff08;4-3 关于栈和队列的讨论&#xff09; 目录1 双端栈/队列2 栈与队列的相互转化2-1 栈转化成队列2-2 队列转化成栈 3 经典工程案例3-1 生产者和消费者模型&#xff08;再次重温环形缓冲区&#xff09;3-2 MapR…

java-单列模式-final-继承-多态

内存存储区域 引用变量和普通变量引用变量放在栈中&#xff0c;基本数据类型的内容是在堆内存中。 对象放在堆内存中&#xff0c;其引用变量放在栈中&#xff0c;指向堆内存存放对象的地址。 静态变量放在静态区中&#xff0c;静态变量在程序的执行始中中分配一次&#xff0c;…

基于杀伤链的勒索软件控制框架

40s说清楚勒索软件如何工作 基于杀伤链的勒索软件控制框架开发了4种缓解策略(预防、阻止、检测&响应、重建)&#xff0c;覆盖18个控制域90项控制措施&#xff0c;以正确管理与勒索软件攻击杀伤链各阶段相关的风险。 注&#xff1a;本文节选出自《基于杀伤链的勒索软件防御指…

Windows编程----结束进程

进程有启动就有终止&#xff0c;通过CreateProcess函数可以启动一个新的子进程&#xff0c;但是如何终结子进程呢&#xff1f;主要有四种方法&#xff1a; 通过主线程的入口函数&#xff08;main函数、WinMain函数&#xff09;的return关键字终止进程 一个应用程序只有一个入…

无标签数据增强+高效注意力GAN:基于CARLA的夜间车辆检测精度跃升

目录 一、摘要 二、引言 三、框架 四、方法 生成合成夜间数据 昼夜图像风格转换 针对夜间图像的无标签数据增强技术 五、Coovally AI模型训练与应用平台 六、实验 数据 图像风格转换 夜间车辆检测和分类 结论 论文题目&#xff1a;ENHANCING NIGHTTIME VEHICLE D…

SqlSugar 进阶之原生Sql操作与存储过程写法 【ORM框架】

系列文章目录 &#x1f380;&#x1f380;&#x1f380; .NET开源 ORM 框架 SqlSugar 系列 &#x1f380;&#x1f380;&#x1f380; 文章目录 系列文章目录一、前言 &#x1f343;二、用法介绍三、方法列表四、使用案例五、调用存储过程六、in参数用法七、SqlServer带Go的脚…