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

嵌入式第三天

今日学习内容:C语言变量规范、表达式与类型转换、全套运算符、优先级规则,以及字符IO、scanf/printf格式化输入输出,同时弄懂了左值右值、内存赋值规则,并且可以用getchar/putchar完成字符处理的实操。

一、变量的定义、命名与初始化规则

  1. 变量本质:在内存中开辟一块对应数据类型的存储空间,通过变量名访问这块内存。使用原则:先定义,后使用。

  2. 命名规范:只能由字母、数字、下划线组成,不能以数字开头;禁止使用C语言关键字;尽量见名知意,推荐驼峰命名法或者下划线命名,不要和库函数重名。

  3. 初始化与赋值:定义变量的时候赋初值叫做初始化;定义完成之后再用=修改数值叫做赋值。严禁使用未初始化的变量,它里面存放的是内存随机垃圾值。

  4. 各类变量写法:short/int/long整型、float/double浮点型、char字符型、bool布尔型,各自的定义格式。

二、表达式、隐式/强制类型转换

  1. 表达式:运算符把常量、变量拼接而成,任何表达式都具备对应的数据类型和结果值。

  2. 混合运算的转换规则:低精度自动向高精度转换
    优先级从高到低:double > float > 无符号长整型 > long > int > char/short

• char、short参与运算时,会自动提升为int;

• float运算时,自动提升成double计算;

• 整型赋值给浮点型,扩展精度;浮点赋值给整型,直接舍弃小数部分。

  1. 强制类型转换:(类型)变量,可以人为改变数据类型,但是不会修改变量本身内存的值。

  2. 特殊赋值规则:大小空间互相赋值时,小数据放进大空间会进行符号扩展;大数据存入小空间,会直接截断低位,极易出现正负颠倒的问题。

三、各类运算符详解

  1. 算术运算符:+ - * / % ++ –

• %取余运算符,只允许整型使用,浮点不能取模;

• 前置++:先自增,再取值;后置++:先取值,再自增,二者只能操作变量,不能作用于常量。

  1. 赋值运算符:=、+=、-=、*=、/=、%=
    分清左值和右值:只有变量可以放在等号左边(左值);常量、表达式只能做右值。

  2. 逗号运算符:从左往右依次执行所有式子,最终结果取最右侧表达式的值。

  3. sizeof运算符:用来计算变量/数据类型占用的内存字节数,编译阶段完成计算,不会运行代码。

  4. 运算符优先级口诀:括号 > 单目运算符 > 双目运算符 > 三目运算符 > 赋值运算符 > 逗号运算符;双目内部优先级:算术 > 移位 > 关系 > 位运算 > 逻辑运算。

四、字符IO与格式化输入输出函数

头文件统一使用 #include <stdio.h>

  1. 字符专用函数

• putchar(字符):向终端输出单个字符;

• getchar():从键盘读取一个字符,返回值为该字符的ASCII码;
利用这两个函数,可以实现小写字母转大写、字符打印等功能。

  1. 格式化IO:scanf() 和 printf()

• printf:按照格式符输出内容,%d整型、%lf双精度浮点、%f单精度float、%c字符;

• scanf:接收键盘输入,变量前必须加取地址符&;格式串内不要随意添加\n、空格,极易造成输入阻塞,之前踩过全角百分号导致读取失败的坑,后续全部使用英文半角符号。

  1. 字符串IO:gets()、puts(),了解其用法以及gets存在的缓冲区安全隐患
http://www.jsqmd.com/news/1246161/

相关文章:

  • 长沙宝珀回收价格查询和靠谱平台实测排行(2026年7月最新) - 收的高名表回收平台
  • CSDN博客-第二篇-Linux基础Day2
  • C++与Eigen实现卡尔曼滤波:从原理到二维轨迹追踪实战
  • Kimi K3 AI编程助手:前端开发效率提升与Claude对比分析
  • 时空数据库与向量检索的融合技术与应用
  • 计算机毕业设计之基于SpringBoot的社区信息化管理系统设计与实现
  • Python逆向网易云音乐加密接口:从AES/RSA原理到歌曲下载实战
  • 大连格拉苏蒂客户服务热线及最新地址信息:2026年7月售后通知 - 亨得利官方服务中心
  • 六西格玛FMEA失效模式分析怎么落地?众智商学院绿带黑带课程教你从理论到实操——400-880-3651张明老师 - 众智商学院cppm官方
  • 萧邦维修中心电话手表维修保养服务热线权威公示(2026年7月最新) - 萧邦中国官方服务中心
  • Java+ONNX Runtime部署YOLOv11:工业视觉零Python依赖方案
  • 第三章 下 Java数组与函数:高效编程双利器
  • 南京欧米茄回收哪家渠道好?2026年7月最新回收价格查询+客服服务测评 - 嘉价奢侈品回收平台
  • 为什么越来越多人需要 AI 数字分身?不是为了替你工作,而是让专业持续被看见
  • 商务服务企业为什么必须布局 GEO?--一网推GEO杨科
  • 哪家椰子鸡火锅食材品质最专业?
  • 2026年最新教程:图片已经压缩了还是超过大小限制怎么办 - 图片处理研究员
  • 研发团队交付效率提升 37%、缺陷率降低 52%:信通院“产业推广级“效能度量平台如何打破研发黑箱
  • Unity碰撞与触发器:从核心原理到性能优化的实战指南
  • GLM与Kimi大模型对比:编程能力、API集成与长文本处理实战
  • 华为Mate90 Pro Max轻量化设计解析:材料与结构创新
  • 2026年7月最新宝珀太原龙湖万达广场维修保养服务电话 - 宝珀官方售后服务中心
  • C++实现克伦肖-柯蒂斯正交规则:数值积分的高效算法与工程实践
  • 安谋科技闪耀WAIC丨AI前瞻分享,Arm无处不在,让AI触手可及
  • LoRA微调技术实战:基于MiniCPM5-1B实现657MB本地AI模型定制
  • pybind11异常处理:C++异常到Python的完美映射实战指南
  • Unity 2021 Android打包res冲突解决方案:创建统一Android Library
  • 百达翡丽在济南哪里回收靠谱吗?2026年7月最新平台实测对比+避坑指南 - 尊奢回收二奢平台
  • 深入解析以太网MAC控制器:统计、VLAN与PTP时间戳实战
  • 亲身探访北京万国售后服务中心|详细地址与24小时客服电话(2026年7月最新) - 万国中国官方服务中心