当前位置: 首页 > article >正文

嵌入式Day4

复合赋值运算符-*/%int main() { int a 20; a 10; printf(a is %d\n,a); a 20; a - 5; printf(a - is %d\n,a); a 20; a * 5 3 ;// 由于运算符 优先级 一定是计算 53 在赋值 printf(a * is %d\n,a); a 20; a / 3 ;// printf(a / is %d\n,a); a 20; a % 3 ;// printf(a %% is %d\n,a); return 0; }逗号运算符使用逗号运算符连接的式子逗号表达式。 从左向右一次计算表达式的。最终整个表达式的值是最后一个 的值。sizeof 运算符计算变量常量表达式数据类型 在内存需要占用字节数。int main() { int a 0 ; a (1,2,3*4,5) ; printf(a is %d\n,a); // 这个地方是函数的参数传递 ,不是逗号表达式 printf(%d, %d, %d ,%d,%d\n,1,2,3,4,5); printf(int size is %lu\n,sizeof(int)); // 可以使用类型 计算内存大小 printf(a size is %lu\n,sizeof(a)); // 可以使用变量计算内存大小、 printf(a1 size is %lu\n,sizeof(a1));// 由对应的数据类型 return 0; }运算符的优先级运算符1)需要几个操作数。 单目双目三目2)优先级 。共15级。 数字越小优先级越高。圆括号 单目 双目 三目 赋值 逗号算术运算符 移位运算符 关系运算符 位运算 逻辑运算符3结合方向(结合率) 。 从左到右 从右至左。 大部分的都是从左至右。右结合 单目运算符赋值运算符条件运算符(?:)第二章 输入输出函数#include stdio.h 系统提供的输入输出函数(功能)的说明输入输出的参考点是计算机系统的内存。 如果数据进入内存输入。 如果数据是从内存中输出输出。函数接口包含 函数名函数的参数。函数名功能备注putchar传入一个需要输出到屏幕的字符 ,并显示int putchar(int c)putchar(h);putuchar(h1);char c o;putchar(c);getchar从终端接收一个字符int getchar(void);char c 0;c getchar();getchar(); // 不可以省略表示函数的调用。调用过程中需要保证参数匹配问题。参数的数据类型个数要对上大部分函数使用完后是有结果的。 只要不是void类型的函数。函数名功能备注printf向终端格式化输出字符串int printf(const char *format, ...);scanf从终端按照格式输入数据int scanf(const char *format, ...);printfint main() { #if 0 // int printf(const char *format, ...); printf(hello world\n);// char* 字符串 -》 就是字符串 printf(h\be\n); // \b 退格 printf(1\t2\t3\n); printf(4\t5\t6\n); printf(7\t8\t9\n); printf(hello \w\orld\n); // hello world printf(\\n\n); // 屏幕输出 \n printf(50%%\n); #endif int num 20 ; printf(num is %d, oct %o, hex %x\n,num,num,num); printf(num oct %#o, hex %#x\n,num ,num); char c A; printf(char is %c, ascii 编码 %d\n,c,c); double do_var 3.14456456; printf(double is %f\n,do_var); printf(double is %lf\n,do_var); printf(double is %e\n,do_var); //科学计数方式 printf(double .2f is %.2f\n,do_var); //显示小数点后2位 printf(%s,你好\n,张三); // %s 显示字符串 printf(显示 num 在内存中的地址:%p\n, num); // 获得num变量的内存地址 printf( %5d, %5d,%5d\n,1,100,-20); // 数据宽度 位5 printf( %05d, %05d,%05d\n,1,100,-20); // 空白处用0 填充 printf( %-5d, %-5d,%-5d\n,1,100,-20); // 左对齐 return 0; } 常用的非控制字符 // 转义字符 本质是一个字符 \n 换行符 \b 退格键 h\be; \t 制表符 \r 光标回到本行的开头 \ 输出 \\ 输出 \ %% 输出一个% 带控制字符的 有几个控制字符就需要传递几个参数 。传递的参数数据类型要和控制字符匹配 %d 有符号的整形数据 %c 按ascii码对应的图形输出 %f float 类型 double %lf double 类型 %s 输出字符串 %u 无符号的整形数据 %ld 有符号的整形数据 long %lu 无符号的整形数据 long %p 显示变量的地址。 %o 8进制输出 %x 16进制输出 %e 显示浮点数的以科学计数法方式显示 %#o, 以8进制输出 带前缀 0 %#x, 以16进制输出 带前缀 0x 扩展形式 %nd n:可以是一个数字 指定数据的显示宽度 高位不空格 printf( %5d, %5d,%5d\n,1,100,-20); 1, 100, -20 %.mf m 指定显示浮点数小数点后的位数 double do_var 3.14456456; printf(double .2f is %.2f\n,do_var); double .2f is 3.14 %-nd -号 表示显示数据的时间左对齐 %0nd 如果数据的宽度不够使用 0 填充空白处scanfint main() { // int scanf(const char *format, ...); int num 0 ; int num2 0 ; printf(请输入2个数:); 在进行scanf 数据接收的时候scanf 会严格按照给定格式进行匹配。如果格式匹配失败放弃接收 //scanf(请输入一个数%d,num); //num 表示num的地址 scanf 可以一次性接收多个变量。 变量和变量之间 使用 tab 键回车键分隔。 scanf(%d%d,num,num2); // tab 键回车键 printf(num is %d, num2 %d\n,num,num2); return 0; }在scanf 的接收过程中尽量少出现非控制字符// 错误的演示 不要加\n scanf(%d\n,num); // 在scanf 格式化接收中不要出现\n,会导致数据无法正常接收如果接收的是普通变量的话变量前都要加 获得变量的地址。scanf(%d,num);float d_var 0.0; printf(输入一个double :); scanf(%lf,d_var); // %lf 变量的类型必须是double 输入一个double :3.112379127391872923 f_var is 0.000000 *** stack smashing detected ***: unknown terminated 栈区崩溃 栈区存储临时变量的内存区域 \Aborted (core dumped)char name[30]{0}; // 数组 printf(输入一个人名:); scanf(%s,name); // 对数组类型不需要要加 printf(%s,你是个老六\n,name);在scanf 接收数据后建议都加一个getchar 接收输入缓冲区的\nint main() { int num 0; printf(input one num:); scanf(%d,num); printf(num is %d\n,num); char c 0; printf(input one char:); scanf(%c,c); // 会发现没有输入就结束了。 printf(c is %c\n,c); return 0; } 改进 int num 0; printf(input one num:); scanf(%d,num); printf(num is %d\n,num); getchar(); // 建议在scanf 后 都加一个getchar ,接收输入缓冲区中的\n char c 0; printf(input one char:); scanf(%c,c); // 等待接收 printf(c is %c\n,c); return 0;字符串的输入和输出函数函数名功能备注puts向终端输出一个字符串int puts(const char *s)参数传入变量常量都行在字符串的最后会加入\ngets从终端接收一个字符串char *gets(char *s);参数传入变量(数组)在输入内容的时候不要越界。越界后行为是不确定。int main() { puts(hello ,ni hao ); //会加入换行符 char str[256]nihao, zhangsan; puts(str); scanf(%s,str); printf(nihao,%s\n,str); return 0; }gets int main() { char name[5]{0}; printf(input person name); // 输入的内容大于 4字符以上就会出现越界 gets(name); //阻塞等待接收数据 printf(%s, hello\n,name); return 0; } linuxubuntu:~/20260422/02stdio$ ./a.out input person name张三 张三, hello 就会出现越界后的现象 。 *** stack smashing detected ***: unknown terminated Aborted (core dumped)附录运算符

相关文章:

嵌入式Day4

复合赋值运算符-*/%int main() {int a 20;a 10;printf("a is %d\n",a);a 20;a - 5;printf("a - is %d\n",a);a 20;a * 5 3 ;// 由于运算符 优先级 一定是计算 53 在赋值printf("a * is %d\n",a);a 20;a / 3 ;// printf("a /…...

UML分析与设计 - 软考备战(五十四)

UML分析与设计 参考资料: 九种常见UML图(分类图解) - HZX↑ - 博客园 UML科普文,一篇文章掌握14种UML图 - 知乎 『这就是UML!』系列内容第8讲:协作图 - ProcessOn知识社区 『这就是UML!』系…...

Rust 异步编程实战:构建高效的并发应用

Rust 异步编程实战:构建高效的并发应用 异步编程的重要性 在现代软件开发中,异步编程变得越来越重要。它允许程序在等待IO操作(如网络请求、文件读写)时继续执行其他任务,从而提高程序的响应速度和吞吐量。Rust作为一种…...

ChanlunX:终极缠论自动化分析插件,让技术分析变得简单高效

ChanlunX:终极缠论自动化分析插件,让技术分析变得简单高效 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX ChanlunX是一个基于C开发的通达信缠论分析插件,通过算法自动…...

别再只做AISMM打分!SITS2026验证:将成熟度等级转化为变革路线图的唯一可复用公式(附动态测算Excel)

更多请点击: https://intelliparadigm.com 第一章:SITS2026案例:AISMM驱动的组织变革 在SITS2026国际航天信息系统技术峰会中,欧洲航天局(ESA)与德国航空航天中心(DLR)联合实施的AI…...

通过Hermes Agent框架对接Taotoken自定义模型提供方

通过Hermes Agent框架对接Taotoken自定义模型提供方 基础教程类,指导使用Hermes Agent框架的用户,如何根据Taotoken提供的接入文档,在Hermes的配置中正确指定custom提供方类型与base_url后缀,并将API密钥写入约定的环境变量文件&…...

如何快速掌握猫抓Cat-Catch:浏览器资源嗅探工具终极指南

如何快速掌握猫抓Cat-Catch:浏览器资源嗅探工具终极指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为无法保存网页上的精彩视…...

【Android 组件】使用 XML 传统方式实现 Navigation 导航功能

一、概述 导航是指允许用户跨越、进入和退出应用中不同内容片段的交互。Android Jetpack 的 Navigation 组件是官方推荐的页面导航和转场解决方案,能帮你轻松处理 Fragment 之间的切换、返回栈管理,支持底部导航栏和动画。 1、主要概念 NavHostFragment(导航宿主):包含当…...

CC26XX低功耗实战:手把手教你配置TI-RTOS自动睡眠策略,让设备续航翻倍

CC26XX低功耗实战:TI-RTOS自动睡眠策略配置与深度优化指南 在物联网设备开发中,电池续航能力往往是决定产品成败的关键因素。德州仪器(TI)的CC26XX系列无线微控制器凭借其出色的低功耗特性,成为众多智能家居、可穿戴设备和工业传感器节点的首…...

天准星智携手BlackBerry QNX,共筑智能驾驶与泛机器人产业新未来

近日,智能驾驶及泛机器人领域的创新企业天准星智(天准科技控股子公司)与全球汽车及嵌入式软件领导者BlackBerry QNX共同宣布建立战略合作。双方将依托BlackBerry QNX领先的软件技术体系,携手打造面向汽车工业、泛机器人及AIoT领域…...

3分钟免费绕过iPhone激活锁:applera1n工具终极使用指南

3分钟免费绕过iPhone激活锁:applera1n工具终极使用指南 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 当您遇到二手iPhone无法激活、忘记Apple ID密码或继承设备时,applera1n这…...

ISCC-pwn(2026)

复现一下 文章目录校赛练武pwn1pwn2pwn3pwn4总结校赛练武 pwn1 32位泄露canary后,栈溢出到后门即可。 from pwn import * context.terminal ["tmux","splitw","-h"] context.log_level debugpprocess(./attachment-5) #premote(3…...

TVA与CNN的历史性对决(18)

重磅预告:本专栏将独家连载新书《AI视觉技术:从入门到进阶》精华内容。本书是《AI视觉技术:从进阶到专家》的权威前导篇,特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan先生师从美国三院院士、“AI教…...

agentsrc-py:为AI编程助手注入精准源代码上下文,消除代码幻觉

1. 项目概述:为AI编程助手注入“源代码级”的上下文如果你和我一样,深度依赖像 Cursor、Claude Code 这类 AI 编程助手来提升开发效率,那你一定也踩过同样的坑:当你让助手帮你写一个基于 Pydantic 的数据验证,或者调用…...

事件驱动架构中的状态机模式:ralph-loop实现异步工作流管理

1. 项目概述:一个“自循环”的Ralph最近在折腾数据管道和API集成时,我遇到了一个挺有意思的项目:Endogen/ralph-loop。乍一看名字,你可能会有点懵,ralph?这不是个名字吗?怎么还“loop”上了&…...

System V 进程间通信:共享内存、消息队列与信号量

文章目录1、共享内存简介与原理2、共享内存API接口2.1、shmget(创建/获取)2.2、shmat(映射)和shmdt(解除挂接)2.3、shmctl(控制)3、共享内存应用4、消息队列(了解&#x…...

5个步骤彻底解决MelonLoader加载问题:从安装到调试的完整指南

5个步骤彻底解决MelonLoader加载问题:从安装到调试的完整指南 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader 你是否…...

终极指南:5分钟搭建免费网盘直链解析服务,告别限速烦恼

终极指南:5分钟搭建免费网盘直链解析服务,告别限速烦恼 【免费下载链接】netdisk-fast-download 聚合多种主流网盘的直链解析下载服务, 一键解析下载,已支持夸克网盘/uc网盘/蓝奏云/蓝奏优享/小飞机盘/123云盘等. 支持文件夹分享解析. 体验地…...

计算机毕业设计 | SpringBoot+vue编程训练系统设计与实现 在线考试系统(附源码+论文)

1,绪论 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理编程训练系统的相关信息成为必然…...

割草机器人行业市场分析报告【5】- 政策、标准与合规环境

第5章:政策、标准与合规环境 5.1 各国环保政策、燃油设备禁令时间表 环保政策与燃油禁令是驱动割草机器人需求的结构性力量,其影响力正在加速显现。...

如何快速配置FF14智能钓鱼计时器:渔人的直感完全指南

如何快速配置FF14智能钓鱼计时器:渔人的直感完全指南 【免费下载链接】Fishers-Intuition 渔人的直感,最终幻想14钓鱼计时器 项目地址: https://gitcode.com/gh_mirrors/fi/Fishers-Intuition 想要在《最终幻想14》中成为钓鱼大师吗?渔…...

安全认证与访问控制

文章目录One Time Password一次性密码平台认证Basic Authentication 基本认证Digest Auth 摘要认证NTLM认证协议Kerberos 网络身份验证协议Token Authentication 令牌认证OAuth Authentication 第三方授权登录API Key AuthenticationSession-Cookie 会话认证ip白名单/白名单认证…...

如何通过SQL改写避免走全表扫描_添加过滤条件与强制索引提示

索引不会自动生效,需WHERE匹配最左前缀且无函数/类型转换;JOIN驱动表选择、OR/IS NULL处理、数据分布变化均影响索引使用,优化需综合评估数据分布、查询频率与写入压力。WHERE 条件没写对,索引根本不会用MySQL 和 PostgreSQL 都不…...

多语言下拉选择器的统一状态管理与 sessionStorage 持久化实践

本文详解如何通过 jQuery 统一控制多个语言切换下拉框&#xff08;<select>&#xff09;的状态同步、初始渲染与持久化&#xff0c;避免因事件绑定混乱或 sessionStorage 未初始化导致的显示错乱问题。 本文详解如何通过 jquery 统一控制多个语言切换下拉框&#xf…...

操作系统 | 处理机调度全解析

&#x1f355; 操作系统的“外卖派单员”&#xff1a;CPU 调度与死锁全攻略 &#x1f69a;&#x1f4a8;大家好&#xff01;&#xff01;&#xff01;☕️想象一下&#xff0c;你是一个拥有无限披萨&#xff08;CPU时间&#xff09;的披萨店老板&#xff0c;而你的店里只有一个…...

HarmonyOS应用开发全流程深度解析:从入门到精通的20000字指南

第一章 鸿蒙生态架构与开发理念1.1 鸿蒙操作系统双版本体系 HarmonyOS与OpenHarmony构成华为"18N"全场景战略的技术底座。商业版HarmonyOS由华为维护&#xff0c;集成消费级设备专有功能&#xff1b;开源版OpenHarmony由开放原子基金会管理&#xff0c;适配工业、电网…...

不只是骷髅海:从《亡灵》设定看游戏设计中“死亡”主题的5种高级玩法与平衡性设计

超越骷髅海&#xff1a;游戏设计中死亡主题的五大高阶玩法与平衡艺术 当《魔兽争霸3》中死亡骑士高举霜之哀伤召唤食尸鬼大军时&#xff0c;玩家第一次体验到亡灵军团"越打越多"的独特快感。但二十年后的今天&#xff0c;单纯的数量压制早已无法满足硬核玩家对策略深…...

达梦数据库修改参数方法

一般用sp_set_para_value()修改新版本达梦支持alter system修改&#xff0c;很类似oracle的命令具体语法树尝试一下 19:42:34 SYSDBALOCALHOST:5236> alter system set dmsql_et_cnt50000 spfile; DMSQL 过程已成功完成 已用时间: 11.967(毫秒). 执行号:13217. 19:42:48 SY…...

如何用3步快速掌握ChanlunX缠论自动化分析终极方法

如何用3步快速掌握ChanlunX缠论自动化分析终极方法 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 你是否在股票技术分析中感到困惑&#xff1f;面对复杂的缠论理论&#xff0c;手动绘制笔、段、中枢结构…...

3大架构维度解析开源直播聚合解决方案:Dart跨平台技术深度实践

3大架构维度解析开源直播聚合解决方案&#xff1a;Dart跨平台技术深度实践 【免费下载链接】dart_simple_live 简简单单的看直播 项目地址: https://gitcode.com/GitHub_Trending/da/dart_simple_live 当技术决策者面对多平台直播整合的复杂挑战时&#xff0c;最核心的痛…...