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

嵌入式学习的第三天

赋值运算符

基础赋值运算符:

=:将右边的值赋给左边变量。

a=10;b=a;

复合赋值:

+=-=*=/=%=

运算规则:先计算右侧表达式结果,再执行赋值运算。

// 示例inta=20;a+=10;// 等价 a = a + 10 → a=30a*=5+3;// 先算5+3=8,再算 a = a * 8 → a=240

赋值核心规则

1. 左值:只能是变量,不能是常量 / 表达式 2. 右值:可以是变量、常量、表达式 3. 浮点 → 整型赋值:直接截断小数,不四舍五入 4. 整型 → 浮点赋值:自动补小数位 0 5. 小字节 → 大字节:正数高位补 0,负数高位补 1 6. 大字节 → 小字节:直接截断高位
// 实例:inta=10;floatb=3.14f;intc=b;// 浮点数赋给整型,c=3

逗号运算符

符号:,用于连接多个表达式,构成逗号表达式

运算规则:

1. 执行顺序:从左向右依次计算所有表达式 2. 最终结果:取最后一个表达式的值

注意:

printf 函数参数中的逗号,仅为参数分隔,不是逗号运算符
// 示例inta=0;a=(1,2,3*4,5);// 依次计算,最终a=5

sizeof 运算符

作用:计算数据类型、变量、常量、表达式在内存中占用的字节数

使用格式:

sizeof(数据类型) sizeof(变量名) sizeof(常量/表达式)
// 示例:sizeof(int);// 计算int类型字节数sizeof(char);// 计算char类型字节数sizeof(10);// 计算常量10的字节数sizeof(a+1.2);// 计算表达式对应类型的字节数

输出格式:返回值为无符号长整型,用%lu打印。

运算符优先级与结合性

优先级规则(数字越小,优先级越高):

1. 括号 ()、下标 []、成员访问 ->/. 2. 单目运算符:!、++、--、(类型)、&、sizeof 3. 算术运算符:* / % 4. 算术运算符:+ - 5. 移位运算符:<< >> 6. 关系运算符:> < >= <= 7. 关系运算符:== != 8. 位运算符:& → ^ → | 9. 逻辑运算符:&& → || 10. 三目运算符:?: 11. 赋值运算符:= += -= *= /= %= 12. 逗号运算符

结合性规则:

1. 绝大多数运算符:自左向右结合 2. 单目、三目、赋值运算符:自右向左结合

输入输出函数

头文件:#include <stdio.h>

核心逻辑:以内存为参考

输入:数据从终端 → 内存 输出:数据从内存 → 终端

字符输入 / 输出函数:

putchar:输出单个字符到终端

putchar('字符');putchar(变量);

getchar:从终端读取单个字符

常用作用:吸收 scanf 输入后的换行符,避免影响后续字符输入
// 示例:charc=getchar();

格式化输出 printf:

作用:按指定格式向终端输出内容

常用格式符

%d 有符号整型 %u 无符号整型 %c 字符(输出ASCII对应图形) %f/%lf 浮点数 %s 字符串 %p 变量内存地址 %o 八进制输出 %x 十六进制输出 %#o 八进制带前缀 0 %#x 十六进制带前缀 0x

扩展格式

%5d 指定宽度为5,右对齐 %05d 指定宽度为5,空白补0 %-5d 指定宽度为5,左对齐 %.2f 浮点数保留2位小数
// 示例intnum=20;printf("num:%d,八进制:%#o,十六进制:%#x\n",num,num,num);doublef=3.14159;printf("保留2位小数:%.2f\n",f);printf("宽度5右对齐:%5d\n",10);

格式化输入 scanf

作用:按指定格式从终端读取数据到内存

核心规则

1. 普通变量前必须加 &(取地址符) 2. 数组名直接使用,无需加 & 3. 格式串中禁止加 \n,会导致输入卡死 4. 多变量输入:空格、Tab、回车分隔 5. 输入数字后,用 getchar() 吸收缓冲区换行符
// 示例intnum=0;scanf("%d",&num);doubled=0;scanf("%lf",&d);

常用转义字符

转义字符本质是单个字符,表示特殊符号或控制格式。

\n 换行符,光标移至下一行开头 \b 退格符,光标向前移动一个位置 \t 水平制表符,缩进一段空格 \r 光标移至本行开头 \\ 输出反斜杠 \ 字符 \" 输出双引号 " 字符 %% 输出百分号 % 字符 '\0' 字符串结束标志,二进制全0
printf("hello\nworld");// 换行输出printf("1\t2\t3\n");// 制表符分隔printf("输出反斜杠:\\\n");printf("输出百分号:%%\n");
http://www.jsqmd.com/news/710972/

相关文章:

  • 2026年AI工程岗必考!Docker AI Toolkit最新版8大核心模块面试题库,限时开放前100名免费下载
  • MySQL InnoDB 锁机制深度解析:从共享锁到 Next-Key Lock,彻底搞懂并发控制
  • 2026年目前高清的视频下载去水印软件找哪个
  • 告别乱码!手把手教你用51单片机驱动LCD1602显示自定义字符(附完整代码)
  • 避开Halcon点云分析第一个坑:手把手教你用`visualize_object_model_3d`正确显示与交互
  • BandPO:动态边界策略优化提升LLM强化学习探索能力
  • 终极指南:5步掌握TFT Overlay - 云顶之弈玩家的实时战术辅助工具
  • 【国家级智慧农场认证技术白皮书节选】:Python实现农业IoT多源数据语义级融合的5层架构设计(含GDPR合规适配)
  • CSS浮动布局的性能优化_减少不必要的清除浮动代码
  • swagger/
  • 怎么下载视频号的视频到相册
  • 用Python和Pygame复刻简化版植物大战僵尸:从数学建模到游戏开发的保姆级教程
  • PCIe 关键技术—— elastic buffer
  • Python 玩转摄像头:MediaPipe 手势追踪贪吃蛇游戏(含完整环境配置教程)
  • 4GB显存也能玩转SDXL?Fooocus低配置AI绘图终极指南
  • 2026最强全能 AI Agent:Codex 零基础完整实战教程(基于 GPT-5.5 与 Image-2 模型)
  • 终极指南:如何用Prompt Optimizer节省90%的LLM API成本
  • 云原生入门系列|第18集:K8s集群扩容与灾备,筑牢生产级安全防线
  • Docker Desktop已不适用边缘场景?3大被低估的WASM容器运行时替代方案对比实测(含启动耗时、内存驻留、TEE支持度数据)
  • Sqlserver 学习笔记
  • mysql用户无法访问存储过程权限提示_MySQL EXECUTE赋权方案.txt
  • Wox终极指南:如何用跨平台启动器提升10倍工作效率?
  • 还不会 CSS 选择器?超详细基础讲解
  • 云顶之弈悬浮辅助工具:TFT Overlay 终极免费指南
  • Linux 进程间通信(IPC):管道与信号量完全指南
  • 【025】类加载:双亲委派与应用隔离
  • FB的聊天軟件上發鏈接不顯示圖片
  • 超级编导源码流出,技术大拿深度对比超级编导与超级智剪云混剪架构
  • 【20年嵌入式老兵亲授】:C语言裸机编程在工业边缘节点中规避内存泄漏与时序抖动的7个硬核技巧
  • GPT Image 2-城市海报