const char reset = '3';
char savedArray[32] = "0000000000000000000000000000000";
savedArray[reset] = '1';
Serial.println(savedArray[reset]);
Serial.println(savedArray[3]);
Serial.println(savedArray);
所以我改变了
savedArray
位置的值,但是当我再次读出它时,我发现它3
。。我做错什么了?为什么重置不与3相同?串行输出:
1
0
0000000000000000000000000000000
最佳答案
假设ASCII甚至EBCDIC编码'3'
是大于32的值。(在ASCII中,是51)。
在savedArray[reset]
中使用此项的行为是未定义的,因为您试图访问数组savedArray
边界之外的索引。使用const char reset = 3;
将数值3指定给任何数值类型,包括const char
。
关于c - 无法读取C中数组的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39567983/