Arduino 语法--数组
数组是一种可访问的变量的集合。Arduino的数组是基于C语言的,实现起来虽然有些复杂,但使用却很简单。
一、创建或声明一个数组
数组的声明和创建与变量一致,下面是一些创建数组的例子。
arrayInts[6];
arrayNums []={2,4,6,8,11};
arrayVals[6]={2,4,-8,3,5};
char arrayString[7]="Arduino";
由例子中可以看出,Arduino数组的创建可以指定初始值,如果没有指定,那么编译器默认为0,同时,数组的大小可以不指定,编译器在监察时会计算元素的个数来指定数组的大小。在arrayString中,字符个数正好等于数组大小。
提示:在声明时元素的个数不能够超过数组的大小,即小于或等于数组的大小。
二、 指定或访问数组
在创建完数组之后,可以指定数组的某个元素的值。
int intArray[3];
intArray[2]=2;
数组是从零开始索引的,也就说,数组初始化之后,数组第一个元素的索引为0,如上例所示,arrayString[0]为“A”即数组的第一个元素是0号索引,并以此类推。这也意味着,在包含10个元素的数组中,索引9是最后一个元素。因此,在下个例子中:
int intArray[10]={1,2,3,4,5,6,7,8,9,10};
//intArray[9]的数值为 10
//intArray[10],该索引是无效的,它将会是任意的随机信息(内存地址)
出于这个原因,在访问数组时应该注意。如果访问的数据超出数组的末尾-如访问intArray[10],则将从其他内存中读取数据。从这些地方读取的数据,除了产生无效的数据外,没有任何作用。向随机存储器中写入数据绝对是一个坏主意,通常会导致一些意外的结果,如导致系统崩溃或程序故障。顺便说一句,不同于Basic或Java,C语言编译器不会检查访问的数组是否大于声明的数组。
Arduino 语法--数组的更多相关文章
- Arduino语法详解_含示例详解
Arduino 的程序可以划分为三个主要部分:结构.变量(变量与常量).函数. 结构部分 一.结构 1.1 setup() 1.2 loop() 二.结构控制 2.1 if 2.2 if...else ...
- Arduino语法-变量和常量
变量的声明: int led=11 一般变量的声明方法为类型名+变量名+变量初始化值.变量名的写法约定为首字母小写 变量的作用范围又称为作用域,变量的作用范围与该变量在哪儿声明有关,大致分为如下两种: ...
- java基础语法 数组
数组是相同数据类型元素的集合 数组本身是引用数据类型,即对象.但是数组可以存储基本数据类型,也可以存储引用数据类型. 在java中如果想要保存一组基本类型的数据,使用数组:如果想保存一组对象或者其 ...
- C语言基本语法——数组
一.一维数组 1.什么是数组 2.数组语法 3.下标 4.初始化 5.数组名和数组首地址 二.一维数组的应用 1.数组的赋值与拷贝 2.数组的正反遍历 3.随机数 4.数组乱序 5.数组的重复 三.二 ...
- JS基础语法---数组
数组: 一组有序的数据 数组的作用: 可以一次性存储多个数据 数组的定义: 1. 通过构造函数创建数组 语法: var 数组名=new Array(); var array=new Array() ...
- JavaScript (三) js的基本语法 - - 数组 与函数 、关键字
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.关键字 1.break 关键字使用 break关键字:如果在循环中使用,遇到了break,则立刻跳出 ...
- Arduino 语法与函数
Arduino programs can be divided in three main parts: structure, values (variables and constants), an ...
- Ruby的基本语法-数组
Ruby中数组的实例 1.color=["Red", "Green" ,"Blue"] #数组赋值
- CC++语法::数组名退化(array decaying)
参考: CSDN::C/C++中数组名退化为指针的情况 stackoverflow::What is array decaying? 起因 笔者在写memset的时候总想偷一点懒(因为我们一般都是为了 ...
- Java 基本语法----数组
数组 数组概述 数组是多个相同类型数据的组合,实现对这些数据的统一管理. 数组属引用类型,数组型数据是对象(Object),数组中的每个元素相当于该对象的成员变量. 数组中的元素可以是任何数据类型,包 ...
随机推荐
- Astro Zen Blog |一个优雅、极简、强大的博客
介绍 Astro Zen 博客项目 如果你想部署一个自己的静态博客,又不想到处折腾,并且是熟悉的前端技术栈,你可以尝试下:Astro Zen Blog! Astro Zen Blog 是一个使用 As ...
- Dapper.SimpleCRUD:Dapper的CRUD助手
我们在项目开发中,面对一些高并发.大数据量等业务场景,往往对SQL语句的性能要求比较高,这个时候为了方便灵活控制,我们一般就会编写原生的SQL. Dapper就是一个非常高性能的轻量级ORM框架,Da ...
- 服务迁移之《mysql数据同步问题》
我们大概是从2022年十月份开始进行拆分的.面对一百多个服务的时候,真的是无从下手,然后公司突然空降了一个从阿里出来的架构师,然后就带着我们大刀阔斧的整体迁移. 先是服务器购买阿里云的,然后从几个核心 ...
- MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded
OUTLINE问题描述解决方案问题描述在mac下,用sequel pro连接数据库,出现以下问题: MySQL said: Authentication plugin 'caching_sha2_pa ...
- Qt6中重大改变的QtMultimedia多媒体模块
一.前言 Qt 6.2 的第一个测试版刚刚发布,并在多个其他新附加组件中加入了全新的 Qt 多媒体模块.Qt Multimedia 是一个模块,它在 Qt 6 中发生了一些相当大的变化. 在很多方面, ...
- [转]在MyBatis中使用pageHelper5.1.9分页插件实现物理分页
pagehelper的GIT地址:https://github.com/pagehelper/Mybatis-PageHelper/ 废话少说,直接给出中文官方链接: 1.如何使用分页插件 2.HOW ...
- 阿里技术分享:闲鱼IM基于Flutter的移动端跨端改造实践
本文由阿里闲鱼技术团队祈晴分享,本次有修订和改动,感谢作者的技术分享. 1.内容概述 本文总结了阿里闲鱼技术团队使用Flutter在对闲鱼IM进行移动端跨端改造过程中的技术实践等,文中对比了传统Nat ...
- Linux开机LOGO更换以及附带问题
应用层更换Linux机器开机启动LOGO 平台开机Logo默认是编译进内核的,更换起来很不方便,通过改写内核源码,可以实现应用层直接更换内核Logo. 1.uboot相关修改 网上教程一般会这么改 & ...
- 基于 Admission Webhook 实现 Pod DNSConfig 自动注入
本文主要分享如何使用 基于 Admission Webhook 实现自动修改 Pod DNSConfig,使其优先使用 NodeLocalDNS . 1.背景 上一篇部署好 NodeLocal DNS ...
- 让 LLM 来评判 | 基础概念
基础概念 这是 让 LLM 来评判 系列文章的第一篇,敬请关注系列文章: 基础概念 选择 LLM 评估模型 设计你自己的评估 prompt 评估你的评估结果 奖励模型相关内容 技巧与提示 什么是评估模 ...