12833浏览
查看: 12833|回复: 5

[求助] 求助:关于数组的运用

[复制链接]
char A[ ]={"0012300"}     //定义字符串

问题1:如果我想将A[ ]里面的123字符保存在int B变量里面。怎么样引用呢?
问题2:如何将int B=456整数变量 赋值 到 A [ ] 数组里面的 123 的位置? 保留其它不变?

hnyzcj  版主

发表于 2016-8-11 12:17:50

回复

使用道具 举报

hnyzcj  版主

发表于 2016-8-11 12:20:50

array
Arrays (数组)
数组是一种可访问的变量的集合。Arduino的数组是基于C语言的,因此这会变得很复杂,但使用简单的数组是比较简单的。
创建(声明)一个数组
下面的方法都可以用来创建(声明)数组。
  myInts [6];
  myPins [] = {2,4,8,3,6};
  mySensVals [6] = {2,4,-8,3,2};
  char message[6] = "hello";

你声明一个未初始化数组,例如myPins。
在myPins中,我们声明了一个没有明确大小的数组。编译器将会计算元素的大小,并创建一个适当大小的数组。
当然,你也可以初始化数组的大小,例如在mySensVals中。请注意,当声明一个char类型的数组时,你初始化的大小必须大于元素的个数,以容纳所需的空字符。
访问数组
数组是从零开始索引的,也就说,上面所提到的数组初始化,数组第一个元素是为索引0,因此:
mySensVals [0] == 2,mySensVals [1] == 4,
依此类推 。
这也意味着,在包含十个元素的数组中,索引九是最后一个元素。因此,
  int myArray[10] = {9,3,2,4,3,2,7,8,9,11};
  // myArray[9]的数值为11
  // myArray[10],该索引是无效的,它将会是任意的随机信息(内存地址)

出于这个原因,你在访问数组应该小心。若访问的数据超出数组的末尾(即索引数大于你声明的数组的大小- 1),则将从其他内存中读取数据。从这些地方读取的数据,除了产生无效的数据外,没有任何作用。向随机存储器中写入数据绝对是一个坏主意,通常会导致不愉快的结果,如导致系统崩溃或程序故障。要排查这样的错误是也是一件难事。 不同于Basic或JAVA,C语言编译器不会检查你访问的数组是否大于你声明的数组。
指定一个数组的值:
  mySensVals [0] = 10;
从数组中访问一个值:
  X = mySensVals [4];
数组和循环
数组往往在for循环中进行操作,循环计数器可用于访问每个数组元素。例如,将数组中的元素通过串口打印,你可以这样做:
  int i;
  for (i = 0; i < 5; i = i + 1) {
  Serial.println(myPins[i]);
  }
回复

使用道具 举报

alientg  见习技师
 楼主|

发表于 2016-8-12 17:25:49

hnyzcj 发表于 2016-8-11 12:20
array
Arrays (数组)
数组是一种可访问的变量的集合。Arduino的数组是基于C语言的,因此这会变得很复杂, ...

这些例子我看了几次,帮助不大,其实第一个问题我已经想出了,因为123int变量我是要做个对比的,所以我int 0 = A[1] .... ,取出来的3个变量x10 x100 3个相加就能得出整数123的变量出来。问题是第二个,其实是整数int里面的123,如何赋值于 A[ ]字符里面的下标2、3、4的位置。
回复

使用道具 举报

alientg  见习技师
 楼主|

发表于 2016-8-12 17:26:48

hnyzcj 发表于 2016-8-11 12:20
array
Arrays (数组)
数组是一种可访问的变量的集合。Arduino的数组是基于C语言的,因此这会变得很复杂, ...

如果有一个函数能对整数 的 个位 十位 百位 提取出来就好了
回复

使用道具 举报

凌风清羽  中级技匠

发表于 2016-8-31 13:12:54

默默的看大神讲解C语言知识~~~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail