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

浅谈sizeof() 函数在Arduino中的使用

下面浅谈 sizeof() 函数在Arduino中的使用 

注意:这里用sizeof(str[2]),sizeof(str[0]),sizeof(str[1])都是一样的

String str[6]={"abc","defg","hijk","lm","n"};
int num;
void setup() {
  Serial.begin(115200);
  num=sizeof(str) /sizeof(str[2]);
  Serial.print("该数组 str[]的长度:");
  Serial.print(num);
}

void loop()
 {
  
}

以下是对这段代码的分析:

一、整体功能

这段代码的主要功能是在 Arduino 环境下(从函数名 setup 和 loop)计算并打印出一个字符串数组的长度。

二、具体解析

  1. 定义部分:

    • String str[6]={"abc","defg","hijk","lm","n"};:定义了一个名为 str 的字符串数组,包含 5 个肉眼可见字符串元素,和一个不可见的,因为:str[6]
    • int num;:定义了一个整数变量 num,用于存储数组的长度。
  2. setup 函数:

    • Serial.begin(115200);:初始化串口通信,设置波特率为 115200。
    • num=sizeof(str) /sizeof(str[2]);:计算数组的长度。sizeof(str) 返回整个数组占用的字节数,sizeof(str[2]) 返回数组中单个元素占用的字节数,两者相除得到数组的长度。
    • Serial.print("该数组 str[]的长度:"); 和 Serial.print(num);:打印出提示信息和数组的长度。
  3. loop 函数:

    • 这个函数为空,意味着在程序运行过程中没有循环执行的任务。

总的来说,这段代码简洁地实现了计算并输出字符串数组长度的功能。如果在实际应用中需要对数组中的元素进行进一步处理,可以在 loop 函数中添加相应的代码。

特别注意:

如果 str[6]改为str[],他就会以实际写出来的为准,进行输出。

代码中num=sizeof(str) / sizeof(str[2]);是用来计算数组str长度的一种方式。


首先,sizeof(str)是计算整个数组占用的字节数。这个数组是由字符串组成的数组,在内存中,字符串本身的存储方式以及数组的存储方式会影响这个值。

虽然单个字符串如 “abc” 和 “n” 占用的字节数不同,

但对于这个特定的数组来说,数组的总字节数取决于数组中元素的个数以及每个元素的存储方式(在这种情况下,每个元素是一个字符串)。


sizeof(str[2])是计算数组中单个元素占用的字节数。


假设每个字符串在内存中的存储方式占用了一定的固定大小加上字符串内容的字节数,那么对于这个特定的数组,无论每个字符串的具体内容如何,只要它们都是相同类型的字符串(比如都是以相同的方式存储的字符串),那么sizeof(str[2])的值就是固定的

通过sizeof(str) / sizeof(str[2])就能准确地计算出数组的长度。


http://www.kler.cn/a/288366.html

相关文章:

  • [pyspark] pyspark中如何修改列名字
  • 【数据价值化】国有企业数据资产入表及估值实践指南:挖掘数字资产新价值
  • 《Django 5 By Example》阅读笔记:p76-p104
  • RabbitMQ高效的消息队列中间件原理及实践
  • 使用API有效率地管理Dynadot域名,编辑账户中whois联系人信息
  • C++编程技巧与规范-类和对象
  • 代码随想录算法训练营_day35
  • ARM 异常处理(21)
  • dfs算法复习
  • Express与SQLite集成教程:轻松实现数据库操作
  • 【概率与统计 动态规划】 808. 分汤
  • Unity3D DOTS系列之BlobAsset核心机制详解
  • UFUG2601-OJ palindrome
  • idea便捷操作
  • Kubernetes 1.20 上将容器从 Docker Engine 改为 Containerd
  • Idea发布springboot项目无法识别到webapp下面的静态资源
  • <数据集>无人机识别数据集<目标检测>
  • 等保2.0通用部分 | 安全物理环境(三级)测评指导书
  • ai数字人音频停顿处理,删除无用音频段
  • 【C++拓展(一)】后端开发常用的技术栈
  • 在随机点实现凸包包围游戏地区
  • 产品概述Tektronix泰克TCP0030A电流探头TCP0030原装二手
  • 前端bug:v-show嵌套组件外层,页面扩大后,组件被遮挡
  • 使用支持UDP协议的IP是否更加快速?
  • 使用Python+docx+openpyxl将Word表格转换为Excel表格
  • EI论文被引多少次算高引?